


Quelle est la méthode pour une mise à niveau fluide de l'environnement de production Nginx ?
1. Contexte
J'ai récemment rencontré un problème plutôt embarrassant et pratique, c'est-à-dire que le Nginx utilisé dans notre environnement de production est une antiquité de Centos6. Les exigences métier doivent être mises en œuvre en chargeant un module de Nginx, mais la version est trop ancienne et nécessite Nginx1.18 ou version ultérieure pour la prendre en charge, et la nôtre est Nginx1.12. Ensuite, mettre à niveau Nginx est ce que nous devons faire. Mais dans l’environnement de production, vous devez prendre en compte de nombreux éléments. Contrairement au serveur de test, Nginx arrête le service, recompile la nouvelle version, puis la redémarre. Nos services en ligne doivent être fournis sans interruption, sinon cela entraînera des pertes économiques pour l'entreprise. Alors, quelles solutions existe-t-il pour mettre à niveau en douceur la version de Nginx
2. Plan de mise à niveau
En fait, le responsable a déjà fait assez pour le ? mise à niveau en douceur de Nginx Le principe de base est de démarrer un nouveau processus Nginx (maître + travailleur), puis d'envoyer la commande -USER2 à l'ancien processus maître, afin que les nouvelles et anciennes versions du processus puissent recevoir des demandes de traitement en même temps temps. Après cela, nous envoyons -WINCH à l'ancien processus pour arrêter le service en fonctionnement (fermons tous les anciens processus de travail, mais l'ancien processus maître n'est pas fermé pour vous éviter de rencontrer des problèmes plus tard si vous confirmez qu'il n'y a pas de problème avec le). nouveau Nginx, puis tuez manuellement l'ancien processus maître pour terminer la mise à niveau en douceur.
Processus de fonctionnement
1 Afficher - ancienne version [nginx 1.12.2] informations sur le processus
[root@k8s-master nginx-1.12.2]# ps aux | grep 'nginx' | grep -v '7月' | grep -v 'grep' root 15180 0.0 0.0 46136 920 ? Ss 17:22 0:00 nginx: master process ./nginx-1.12.2/sbin/nginx nobody 15181 0.0 0.1 46584 4344 ? S 17:22 0:00 nginx: worker process
Pid du processus principal : 15180 processus de travail. 15181
2 . nginx -V Afficher les paramètres de compilation de l'ancienne version de nginx
[root@k8s-master nginx-1.12.2]# nginx-1.12.2/sbin/nginx.old.1.12 -V nginx version: nginx/1.12.2 built by gcc 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC) built with OpenSSL 1.0.2k-fips 26 Jan 2017 TLS SNI support enabled configure arguments: --prefix=nginx-1.12.2 --with-pcre=/root/nginx-test/pcre-8.45/ --with-http_stub_status_module --with-http_gzip_static_module --with-http_ssl_module --with-stream [root@k8s-master nginx-1.12.2]#
Si make ou ./configure signale une erreur, vous pouvez essayer d'installer : yum install -y gcc-c++
3. Sauvegardez l'ancienne version du programme binaire nginx, mv nginx nginx.old
mv nginx nginx.old
4 A ce moment, nous téléchargeons la nouvelle version de [nginx1.20.2] et la recompilons selon les paramètres de compilation de l'ancienne version (ou. ajoutez un nouveau module de compilation par vous-même)
5. Copiez le binaire nginx nouvellement généré et déplacez-le vers l'ancienne version précédente de la couverture du chemin nginx.
./configure --prefix=/usr/local/ --with-stream xxxx[模块列表] make &make install
6. Envoyez nginx -USR2 15180 (ancien processus principal nginx) pour le remplacer. il y a 4 processus en ce moment. 2 anciens processus nginx 2 nouveaux processus nginx
La demande a été testée en ce moment La charge est équilibrée sur ces deux maîtres
La demande est faite deux fois, la première. le chargement est vers le nouveau maître, et le deuxième chargement est vers l'ancien maître.
7. Confirmez que la mise à niveau est réussie, le signal -WINCH arrête l'ancienne version. Le maître reçoit de nouvelles requêtes (l'ancienne version du processus maître nginx ne l'est pas). mort pour le moment, mais cesse simplement de recevoir de nouvelles requêtes)
kill -winch 15180
L'ancienne version de nginx n'a plus que le processus maître et le processus enfant n'existe plus.
Visites multiples à ce moment URL, l'équilibrage de charge sera n'apparaîtra plus
Bonjour tout le monde n'apparaîtra plus
8 Il est également très simple de restaurer la version, envoyez simplement kill -HUP 15180 (ancien processus maître nginx)
. Pour le moment, l'ancienne version et la nouvelle version de nginx sont en équilibrage de charge. Tuez simplement la nouvelle version de nginx master.
À ce moment, la nouvelle version de nginx a été supprimée -QUIT.
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!

Nginx améliore les performances grâce à son architecture axée sur les événements et à ses capacités de traitement asynchrones, améliore l'évolutivité grâce à la conception modulaire et à la configuration flexible, et améliore la sécurité via le chiffrement SSL / TLS et la limitation du taux de demande.

Nginx convient aux scénarios élevés de concurrence et de consommation de ressources faibles, tandis qu'Apache convient aux scénarios qui nécessitent des configurations complexes et des extensions fonctionnelles. 1.Nginx est connu pour gérer un grand nombre de connexions simultanées avec des performances élevées. 2. Apache est connue pour sa stabilité et son riche support de modules. Lors du choix, il doit être décidé sur la base de besoins spécifiques.

NginxissentialformodernwebapplicationsduetOtsRolesAsAreverseproxy, loadbalancer etwebserver, offrant la performance de la dressage de la mise

Pour assurer la sécurité du site Web via NGINX, les étapes suivantes sont requises: 1. Créez une configuration de base, spécifiez le certificat SSL et la clé privée; 2. Optimiser la configuration, activer HTTP / 2 et OCSPStapling; 3. Débogage des erreurs communes, telles que les problèmes de trajectoire de certificat et de suite de cryptage; 4. Suggestions d'optimisation des performances de l'application, telles que l'utilisation de Let'scrypt et du multiplexage de session.

Nginx est un serveur HTTP et proxy inversé haute performance qui est bon pour gérer des connexions simultanées élevées. 1) Configuration de base: écoutez le port et fournissez des services de fichiers statiques. 2) Configuration avancée: implémenter le proxy inverse et l'équilibrage de charge. 3) Compétences de débogage: vérifiez le journal des erreurs et testez le fichier de configuration. 4) Optimisation des performances: activer la compression GZIP et ajuster les politiques de cache.

Le cache Nginx peut améliorer considérablement les performances du site Web via les étapes suivantes: 1) définir la zone de cache et définir le chemin du cache; 2) Configurer la période de validité du cache; 3) définir différentes politiques de cache en fonction de différents contenus; 4) Optimiser le stockage du cache et l'équilibrage de la charge; 5) Surveiller et déboguer les effets du cache. Grâce à ces méthodes, le cache Nginx peut réduire la pression du serveur arrière, améliorer la vitesse de réponse et l'expérience utilisateur.

L'utilisation de DockerCompose peut simplifier le déploiement et la gestion de Nginx, et la mise à l'échelle via Dockerswarm ou Kubernetes est une pratique courante. 1) Utilisez DockerCose pour définir et exécuter les conteneurs Nginx, 2) implémenter la gestion des cluster et la mise à l'échelle automatique via Dockerswarm ou Kubernetes.

La configuration avancée de Nginx peut être implémentée via des blocs de serveur et un proxy inversé: 1. Les blocs de serveur permettent d'exécuter plusieurs sites Web en une seule instance, chaque bloc est configuré indépendamment. 2. Le proxy inversé transfère la demande au serveur backend pour réaliser l'équilibrage de charge et l'accélération du cache.


Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

MantisBT
Mantis est un outil Web de suivi des défauts facile à déployer, conçu pour faciliter le suivi des défauts des produits. Cela nécessite PHP, MySQL et un serveur Web. Découvrez nos services de démonstration et d'hébergement.

MinGW - GNU minimaliste pour Windows
Ce projet est en cours de migration vers osdn.net/projects/mingw, vous pouvez continuer à nous suivre là-bas. MinGW : un port Windows natif de GNU Compiler Collection (GCC), des bibliothèques d'importation et des fichiers d'en-tête librement distribuables pour la création d'applications Windows natives ; inclut des extensions du runtime MSVC pour prendre en charge la fonctionnalité C99. Tous les logiciels MinGW peuvent fonctionner sur les plates-formes Windows 64 bits.

ZendStudio 13.5.1 Mac
Puissant environnement de développement intégré PHP

Version crackée d'EditPlus en chinois
Petite taille, coloration syntaxique, ne prend pas en charge la fonction d'invite de code

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP