Maison  >  Article  >  Opération et maintenance  >  Comment mettre à niveau la version de nginx sans affecter l'entreprise

Comment mettre à niveau la version de nginx sans affecter l'entreprise

王林
王林avant
2020-11-03 16:54:132799parcourir

Comment mettre à niveau la version de nginx sans affecter l'entreprise

Cet article présente une méthode de mise à niveau fluide pour nginx installé avec yum Si le nginx d'origine a été compilé et installé, vous devez faire attention à votre configuration réelle lors de la mise à niveau.

(Tutoriel recommandé : Tutoriel nginx )

1. Vérifiez la version de nginx installée par yum et la configuration existante

Enregistrez d'abord la configuration précédente.

nginx -V
nginx version: nginx/1.12.2
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC)
built with OpenSSL 1.0.2k-fips 26 Jan 2017
TLS SNI support enabled
configure arguments: --prefix=/usr/share/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib64/nginx/modules --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --http-client-body-temp-path=/var/lib/nginx/tmp/client_body --http-proxy-temp-path=/var/lib/nginx/tmp/proxy --http-fastcgi-temp-path=/var/lib/nginx/tmp/fastcgi --http-uwsgi-temp-path=/var/lib/nginx/tmp/uwsgi --http-scgi-temp-path=/var/lib/nginx/tmp/scgi --pid-path=/run/nginx.pid --lock-path=/run/lock/subsys/nginx --user=nginx --group=nginx --with-file-aio --with-ipv6 --with-http_auth_request_module --with-http_ssl_module --with-http_v2_module --with-http_realip_module --with-http_addition_module --with-http_xslt_module=dynamic --with-http_image_filter_module=dynamic --with-http_geoip_module=dynamic --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_random_index_module --with-http_secure_link_module --with-http_degradation_module --with-http_slice_module --with-http_stub_status_module --with-http_perl_module=dynamic --with-mail=dynamic --with-mail_ssl_module --with-pcre --with-pcre-jit --with-stream=dynamic --with-stream_ssl_module --with-debug --with-cc-opt=’-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -m64 -mtune=generic’ --with-ld-opt=’-Wl,-z,relro -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -Wl,-E’ --add-module=/root/nginx-rtmp-module

les arguments de configuration seront utilisés plus tard : Ce qui suit est la configuration existante de nginx

2 Téléchargez la nouvelle version requise du package de code source nginx

wget http://nginx.org/download/nginx-1.14.2.tar.gz

3. up les fichiers importants de nginx d'origine (pour des raisons de sécurité)

mv /usr/sbin/nginx /usr/sbin/nginx.back 
cp -rf /etc/nginx /etc/nginx.back

4. Compilez

Adoptez la configuration trouvée précédemment S'il y a de nouveaux modules à ajouter, vous pouvez également les ajouter

tar xf  nginx-1.14.2.tar.gz
cd nginx-1.14.2
./configure --prefix=/usr/share/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib64/nginx/modules --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --http-client-body-temp-path=/var/lib/nginx/tmp/client_body --http-proxy-temp-path=/var/lib/nginx/tmp/proxy --http-fastcgi-temp-path=/var/lib/nginx/tmp/fastcgi --http-uwsgi-temp-path=/var/lib/nginx/tmp/uwsgi --http-scgi-temp-path=/var/lib/nginx/tmp/scgi --pid-path=/run/nginx.pid --lock-path=/run/lock/subsys/nginx --user=nginx --group=nginx --with-file-aio --with-ipv6 --with-http_auth_request_module --with-http_ssl_module --with-http_v2_module --with-http_realip_module --with-http_addition_module --with-http_xslt_module=dynamic --with-http_image_filter_module=dynamic --with-http_geoip_module=dynamic --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_random_index_module --with-http_secure_link_module --with-http_degradation_module --with-http_slice_module --with-http_stub_status_module --with-http_perl_module=dynamic --with-mail=dynamic --with-mail_ssl_module --with-pcre --with-pcre-jit --with-stream=dynamic --with-stream_ssl_module --with-debug --with-cc-opt=’-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -m64 -mtune=generic’ --with-ld-opt=’-Wl,-z,relro -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -Wl,-E’ --add-module=/root/nginx-rtmp-module
.

5. make

Puisque nginx existe déjà, make install ne peut pas être exécuté, sinon le fichier de configuration et le contenu précédents seront écrasés

make
cp objs/nginx /usr/sbin/nginx

Vérifiez s'il a réussi

/usr/sbin/nginx -t

7. Commutation fluide

Remarque : vous devriez trouver l'emplacement de votre fichier pid en fonction du contenu de votre configuration réellement compilé. Le nginx original de cet article est installé par yum, il se trouve donc sous /var/run.

En fait, vous pouvez également utiliser make update dans le répertoire nginx-1.14.2 pour mettre à niveau. Afin d'éviter les problèmes, il est recommandé de le gérer manuellement

kill -USR2 `cat /var/run/nginx.pid`              将旧版本Nginx的主进程将重命名为nginx.pid.oldbin,并执行新版本的Nginx可执行程序,启动新的主进程和新的工作进程,再次生成新的nginx.pid文件
kill -WINCH `cat /var/run/nginx.pid.oldbin`      平缓停止worker process(此步骤可省略)
kill -QUIT `cat /var/run/nginx.pid.oldbin`       平缓停止旧的Nginx服务进程

8. 🎜>

Comment mettre à niveau la version de nginx sans affecter lentreprise

Article supplémentaire :

Les signaux pris en charge par Nginx

peuvent être utilisés pour contrôler les activités Nginx

TERM, INT - arrêt rapide

QUIT Arrêt en douceur

HUP Redémarrage en douceur, rechargement du fichier de configuration

USR1 Rouvrir le fichier journal

USR2 Mise à niveau en douceur du programme exécutable

Processus de travail WINCH Smooth Close

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer