Table des matières
1. Contexte
2. Plan de mise à niveau
Processus de fonctionnement
Maison Opération et maintenance Nginx Quelle est la méthode pour une mise à niveau fluide de l'environnement de production Nginx ?

Quelle est la méthode pour une mise à niveau fluide de l'environnement de production Nginx ?

May 13, 2023 pm 05:58 PM
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
Copier après la connexion

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]#
Copier après la connexion

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
Copier après la connexion

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
Copier après la connexion

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

Quelle est la méthode pour une mise à niveau fluide de lenvironnement de production Nginx ?

La demande a été testée en ce moment La charge est équilibrée sur ces deux maîtres

Quelle est la méthode pour une mise à niveau fluide de lenvironnement de production Nginx ?

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
Copier après la connexion

Quelle est la méthode pour une mise à niveau fluide de lenvironnement de production Nginx ?

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

Quelle est la méthode pour une mise à niveau fluide de lenvironnement de production Nginx ?

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)

Quelle est la méthode pour une mise à niveau fluide de lenvironnement de production Nginx ?

Quelle est la méthode pour une mise à niveau fluide de lenvironnement de production 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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment autoriser l'accès au réseau externe au serveur Tomcat Comment autoriser l'accès au réseau externe au serveur Tomcat Apr 21, 2024 am 07:22 AM

Pour permettre au serveur Tomcat d'accéder au réseau externe, vous devez : modifier le fichier de configuration Tomcat pour autoriser les connexions externes. Ajoutez une règle de pare-feu pour autoriser l'accès au port du serveur Tomcat. Créez un enregistrement DNS pointant le nom de domaine vers l'adresse IP publique du serveur Tomcat. Facultatif : utilisez un proxy inverse pour améliorer la sécurité et les performances. Facultatif : configurez HTTPS pour une sécurité accrue.

Comment générer une URL à partir d'un fichier HTML Comment générer une URL à partir d'un fichier HTML Apr 21, 2024 pm 12:57 PM

La conversion d'un fichier HTML en URL nécessite un serveur Web, ce qui implique les étapes suivantes : Obtenir un serveur Web. Configurez un serveur Web. Téléchargez le fichier HTML. Créez un nom de domaine. Acheminez la demande.

Comment déployer le projet nodejs sur le serveur Comment déployer le projet nodejs sur le serveur Apr 21, 2024 am 04:40 AM

Étapes de déploiement de serveur pour un projet Node.js : Préparez l'environnement de déploiement : obtenez l'accès au serveur, installez Node.js, configurez un référentiel Git. Créez l'application : utilisez npm run build pour générer du code et des dépendances déployables. Téléchargez le code sur le serveur : via Git ou File Transfer Protocol. Installer les dépendances : connectez-vous en SSH au serveur et installez les dépendances de l'application à l'aide de npm install. Démarrez l'application : utilisez une commande telle que node index.js pour démarrer l'application ou utilisez un gestionnaire de processus tel que pm2. Configurer un proxy inverse (facultatif) : utilisez un proxy inverse tel que Nginx ou Apache pour acheminer le trafic vers votre application

Nodejs est-il accessible de l'extérieur ? Nodejs est-il accessible de l'extérieur ? Apr 21, 2024 am 04:43 AM

Oui, Node.js est accessible de l’extérieur. Vous pouvez utiliser les méthodes suivantes : Utilisez Cloud Functions pour déployer la fonction et la rendre accessible au public. Utilisez le framework Express pour créer des itinéraires et définir des points de terminaison. Utilisez Nginx pour inverser les requêtes de proxy vers les applications Node.js. Utilisez des conteneurs Docker pour exécuter des applications Node.js et les exposer via le mappage de ports.

Comment déployer et maintenir un site Web en utilisant PHP Comment déployer et maintenir un site Web en utilisant PHP May 03, 2024 am 08:54 AM

Pour déployer et maintenir avec succès un site Web PHP, vous devez effectuer les étapes suivantes : Sélectionnez un serveur Web (tel qu'Apache ou Nginx) Installez PHP Créez une base de données et connectez PHP Téléchargez le code sur le serveur Configurez le nom de domaine et la maintenance du site Web de surveillance DNS les étapes comprennent la mise à jour de PHP et des serveurs Web, la sauvegarde du site Web, la surveillance des journaux d'erreurs et la mise à jour du contenu.

Comment utiliser Fail2Ban pour protéger votre serveur contre les attaques par force brute Comment utiliser Fail2Ban pour protéger votre serveur contre les attaques par force brute Apr 27, 2024 am 08:34 AM

Une tâche importante pour les administrateurs Linux est de protéger le serveur contre les attaques ou les accès illégaux. Par défaut, les systèmes Linux sont livrés avec des pare-feu bien configurés, tels que iptables, Uncomplicated Firewall (UFW), ConfigServerSecurityFirewall (CSF), etc., qui peuvent empêcher diverses attaques. Toute machine connectée à Internet est une cible potentielle d'attaques malveillantes. Il existe un outil appelé Fail2Ban qui peut être utilisé pour atténuer les accès illégaux sur le serveur. Qu’est-ce que Fail2Ban ? Fail2Ban[1] est un logiciel de prévention des intrusions qui protège les serveurs des attaques par force brute. Il est écrit en langage de programmation Python

Venez avec moi apprendre Linux et installer Nginx Venez avec moi apprendre Linux et installer Nginx Apr 28, 2024 pm 03:10 PM

Aujourd'hui, je vais vous amener à installer Nginx dans l'environnement Linux. Le système Linux utilisé ici est CentOS7.2 Préparez les outils d'installation 1. Téléchargez Nginx depuis le site officiel de Nginx. La version utilisée ici est : 1.13.6.2 Téléchargez le Nginx téléchargé sur Linux Ici, le répertoire /opt/nginx est utilisé comme exemple. Exécutez "tar-zxvfnginx-1.13.6.tar.gz" pour décompresser. 3. Basculez vers le répertoire /opt/nginx/nginx-1.13.6 et exécutez ./configure pour la configuration initiale. Si l'invite suivante apparaît, cela signifie que PCRE n'est pas installé sur la machine et que Nginx doit

Plusieurs points à noter lors de la création d'une haute disponibilité avec keepalived+nginx Plusieurs points à noter lors de la création d'une haute disponibilité avec keepalived+nginx Apr 23, 2024 pm 05:50 PM

Après que yum ait installé keepalived, configurez le fichier de configuration keepalived. Notez que dans les fichiers de configuration keepalived du maître et de la sauvegarde, le nom de la carte réseau est le nom de la carte réseau de la machine actuelle qui est sélectionnée comme adresse IP disponible. Environnement LAN Il y en a d'autres, donc ce VIP est une IP intranet dans le même segment réseau que les deux machines. S'il est utilisé dans un environnement réseau externe, peu importe qu'il se trouve sur le même segment de réseau, du moment que le client peut y accéder. Arrêtez le service nginx et démarrez le service keepalived. Vous verrez que keepalived démarre le service nginx s'il ne peut pas démarrer et échoue, il s'agit essentiellement d'un problème avec les fichiers de configuration et les scripts, ou d'un problème de prévention.

See all articles