


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!

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

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

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

Dreamweaver CS6
Outils de développement Web visuel

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

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.

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.

É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

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.

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.

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

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

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.
