Contactez nous

info@serverion.com

Appelez nous

+1 (302) 380 3902

Configuration NGINX pour DevOps : l'astuce de Serverion pour des déploiements sans interruption de service

Configuration NGINX pour DevOps : l'astuce de Serverion pour des déploiements sans interruption de service

Déploiements sans temps d'arrêt Mettre à jour votre application sans interrompre le service est essentiel pour les entreprises où une simple panne peut coûter des millions. NGINX rend cela possible grâce à son modèle de processus maître-travailleur et à des signaux intelligents tels que USR2 (démarrer de nouveaux processus) et HUP (configuration de rechargement). Voici la clé :

  • Comment ça marche: NGINX déplace le trafic des anciens travailleurs vers les travailleurs mis à jour sans interrompre les connexions.
  • Étapes clés: Utiliser des signaux (USR2, HUP, etc.), configurer nginx.conf correctement et validez les modifications avant de recharger.
  • Techniques: Combinez NGINX avec des méthodes telles que les déploiements bleu-vert ou Docker pour des mises à jour transparentes.
  • Contrôles de santé: Assurez-vous que seuls les serveurs sains gèrent le trafic, à l'aide des contrôles de santé passifs ou actifs de NGINX.

Avec la bonne configuration, vous pouvez assurer le bon fonctionnement de vos services pendant les mises à jour, protéger les revenus et maintenir la confiance des clients.

Principes de base de NGINX pour des déploiements sans interruption de service

NGINX

Explication du déploiement sans temps d'arrêt

NGINX utilise un modèle maître-worker pour gérer les mises à jour sans interruption de service. Le processus maître supervise la configuration et le contrôle, tandis que les processus worker gèrent les connexions client. Cette configuration permet un transfert fluide du trafic des anciens workers vers les nouveaux lors des mises à jour, garantissant ainsi un service ininterrompu.

Gestion des connexions NGINX

NGINX s'appuie sur des signaux spécifiques pour contrôler les processus lors des mises à niveau ou des changements de configuration :

  • USR2: Démarre de nouveaux processus maître et travailleur.
  • TREUIL: Arrête les anciens processus de travail avec élégance.
  • HUP: Recharge la configuration et remplace les travailleurs.
  • QUITTER:Arrête le maître et les ouvriers avec grâce.

Lors du rechargement, NGINX déplace l'ancien ID de processus maître vers /run/nginx.pid.oldbin, écrit le nouvel ID de processus maître dans /run/nginx.pid, et permet aux anciens travailleurs de terminer les demandes actives avant de s'arrêter.

Déploiements d'applications modernes : comment utiliser NGINX et JFrog pour…

JFrog

Configuration de NGINX pour un fonctionnement continu

Pour maintenir les connexions actives pendant les rechargements, profitez de l'architecture maître-travailleur de NGINX avec les paramètres suivants.

Étapes clés de configuration de NGINX

Allumer multi_accept pour permettre aux travailleurs de gérer plusieurs connexions par événement. Voici un exemple de configuration pour nginx.conf:

processus_travailleurs auto; pid /run/nginx.pid; événements { connexions_travailleurs 1024; multi_acceptation activée; } http { backend en amont { serveur backend1.example.com:8080; serveur backend2.example.com:8080; keepalive 32; } serveur { écoute 80; nom_serveur example.com; emplacement / { proxy_pass http://backend; proxy_http_version 1.1; proxy_set_header Connexion ""; proxy_set_header Hôte $host; proxy_set_header X-Real-IP $remote_addr; } } } 

Rechargement de la configuration sans temps d'arrêt

  1. Rechargez les travailleurs actuels pour appliquer les modifications :
    nginx -s recharger 
  2. Vérifiez l'ID du processus maître mis à jour :
    chat /run/nginx.pid 
  3. Effectuer une mise à niveau binaire sans arrêter le trafic :
    tuer -USR2 $(cat /run/nginx.pid) tuer -WINCH $(cat /run/nginx.pid.oldbin) 

Ces étapes permettent une transition fluide du trafic entre les anciens et les nouveaux travailleurs, garantissant ainsi un service ininterrompu.

Méthodes de déploiement avec NGINX

Vous pouvez utiliser NGINX pour réaliser des déploiements sans temps d’arrêt en exploitant des techniques telles que les configurations bleu-vert ou les approches basées sur des conteneurs.

Configuration du déploiement bleu-vert

Avec NGINX, vous pouvez gérer le trafic entre deux environnements – communément appelés bleu et vertCes environnements sont identiques, mais un seul est actif à la fois. Voici son fonctionnement :

  • Déployez la version mise à jour dans l’environnement inactif (par exemple, vert).
  • Exécutez des contrôles de santé pour vous assurer que la nouvelle version fonctionne correctement.
  • Une fois vérifié, mettez à jour le Configuration NGINX pour acheminer le trafic vers l'environnement mis à jour.
  • Rechargez la configuration à l'aide de la HUP signal pour éviter de perdre les connexions actives.

Cette méthode garantit une transition en douceur sans interruption de service.

Intégration Docker et NGINX

Utiliser Docker avec NGINX simplifie les déploiements en maintenant des environnements cohérents pour vos couches applicatives et proxy. Voici comment obtenir des mises à jour sans interruption :

  • Lancez le nouveau conteneur à côté du conteneur actif actuel.
  • Effectuez des contrôles de santé pour confirmer que le nouveau conteneur est prêt.
  • Modifiez la configuration en amont de NGINX pour inclure le nouveau conteneur.
  • Rechargez la configuration avec le HUP signal, permettant aux anciens travailleurs de terminer le traitement avant de partir.

Cette approche garantit un service ininterrompu lors de la mise à jour de votre application.

Tests et vérifications

Configurer les contrôles de santé

Les contrôles d'intégrité NGINX garantissent que seuls les serveurs fonctionnels gèrent le trafic. Ces contrôles s'appuient sur la configuration en amont et le routage bleu-vert. NGINX propose deux types de contrôles d'intégrité : passif (disponible dans NGINX Open Source) et actif (exclusif à NGINX Plus).

Pour les contrôles de santé passifs dans NGINX Open Source, configurez votre bloc en amont comme ceci :

backend en amont { serveur backend1.serverion.com:8080 max_fails=3 fail_timeout=30s; serveur backend2.serverion.com:8080 max_fails=3 fail_timeout=30s; zone backend 64k; } 

Si vous utilisez NGINX Plus, vous pouvez activer les contrôles de santé actifs en ajoutant le bilan de santé directive accompagnée d'un correspondre bloc:

emplacement / { proxy_pass http://backend; health_check interval=5s fails=3 passes=2 mandatory persistent; match health_check { status 200; header Content-Type = application/json; body ~ '"status":"UP"'; } } 

Assurez-vous de valider ces configurations avant de recharger NGINX.

Valider la configuration

Vérifiez toujours l'exactitude de votre configuration NGINX avant de la recharger. Utilisez la commande suivante :

nginx -t -c /chemin/vers/votre/nginx.conf 

Principes essentiels d'un déploiement sans interruption de service

Réaliser des déploiements sans interruption de service repose sur une configuration NGINX rigoureuse et une planification rigoureuse de l'infrastructure. Ces éléments fonctionnent ensemble pour garantir des mises à jour sans interruption.

Voici les facteurs clés du succès :

  • Contrôle des processus et validation de la configuration:Tirez pleinement parti de l'architecture de NGINX tout en respectant des protocoles de test rigoureux.
  • Stabilité des infrastructures:Maintenez des performances constantes et maintenez une sécurité renforcée tout au long du processus de déploiement.

Pour plus de détails sur les contrôles de santé et les étapes de restauration, consultez le Tests et vérifications section.

ServerionLa plateforme de s soutient ces efforts avec une stabilité et une sécurité fiables. centres de données mondiaux Maintenez les performances stables pendant les mises à jour et la protection DDoS intégrée garantit que la sécurité reste intacte.

Commencez modestement en utilisant des options de fonctionnalités sur les services non critiques. Augmentez progressivement votre capacité, tout en plaçant au cœur de votre stratégie des tests réguliers, une surveillance étroite et des plans de restauration clairs.

Articles de blog associés

fr_FR