Maison >Opération et maintenance >Nginx >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. 🎜>
Article supplémentaire : Les signaux pris en charge par Nginxpeuvent être utilisés pour contrôler les activités NginxTERM, INT - arrêt rapideQUIT Arrêt en douceurHUP Redémarrage en douceur, rechargement du fichier de configurationUSR1 Rouvrir le fichier journalUSR2 Mise à niveau en douceur du programme exécutable Processus de travail WINCH Smooth CloseCe 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!