


Comment utiliser Nginx pour implémenter un cluster Web hautement disponible
Comment utiliser Nginx pour implémenter un cluster Web hautement disponible
Introduction :
Dans les applications Internet modernes, la haute disponibilité est une considération très importante. Afin de garantir la stabilité et la fiabilité des applications en cas de trafic élevé, il est souvent nécessaire de créer un cluster Web hautement disponible. Parmi eux, Nginx est un serveur proxy inverse très populaire, qui peut réaliser un équilibrage de charge et une haute disponibilité grâce à quelques configurations simples. Cet article explique comment utiliser Nginx pour créer un cluster Web hautement disponible et donne des exemples de code.
1. Installer et configurer Nginx
Tout d'abord, nous devons installer et configurer Nginx sur chaque serveur Web.
-
Installer Nginx :
Dans le système Ubuntu, vous pouvez installer Nginx via la commande suivante :$ sudo apt-get update $ sudo apt-get install nginx
Copier après la connexion Configurer Nginx :
Ouvrez le fichier de configuration Nginxnginx.conf
, le chemin par défaut est/etc/nginx/nginx.conf
, utilisez un éditeur de texte pour le modifier.nginx.conf
,默认路径是/etc/nginx/nginx.conf
,使用文本编辑器进行编辑。
以下是一个简单的示例配置:http { upstream backend { server backend1.example.com; server backend2.example.com; server backend3.example.com; } server { listen 80; location / { proxy_pass http://backend; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } }
Copier après la connexion其中,
upstream
块定义了一组负载均衡后端服务器;server
块定义了监听的端口和访问配置。
保存并退出配置文件,然后重启 Nginx 服务以使配置生效:
$ sudo systemctl restart nginx
二、配置负载均衡策略
为了实现负载均衡,可以在 Nginx 配置文件中定义不同的负载均衡策略。以下是一些常用的负载均衡策略。
轮询(Round-Robin)策略:
该策略按照后端服务器的顺序依次分配请求。upstream backend { server backend1.example.com; server backend2.example.com; server backend3.example.com; }
Copier après la connexionIP 哈希(IP Hash)策略:
该策略通过对客户端 IP 地址进行哈希计算,将同一个客户端的请求发送到同一台后端服务器上。upstream backend { ip_hash; server backend1.example.com; server backend2.example.com; server backend3.example.com; }
Copier après la connexion加权轮询(Weighted Round-Robin)策略:
该策略根据后端服务器的权重大小进行请求分配。upstream backend { server backend1.example.com weight=3; server backend2.example.com weight=2; server backend3.example.com weight=1; }
Copier après la connexion
三、配置健康检查和容错
为了实现高可用性,我们需要对后端服务器进行健康检查,并在服务器不可用时进行容错处理。
- 健康检查:
可以通过nginx_http_healthcheck_module
或nginx-stream-healthcheck-module
模块实现 Nginx 对后端服务器的健康检查。 容错处理:
当某台后端服务器不可用时,Nginx 可以将请求发送至其他可用服务器,以实现容错。以下是一个简单的容错配置示例:http { upstream backend { server backend1.example.com; server backend2.example.com backup; server backend3.example.com; } server { listen 80; ... } }
Copier après la connexion
以上配置中,backup
参数指定了备用服务器,当主服务器不可用时,请求会转发到备用服务器。
四、代码示例
以下是一个简单的基于 Node.js 的 Web 服务器示例,用于演示 Nginx 的负载均衡功能。
server.js:
const http = require('http'); const server = http.createServer((req, res) => { res.statusCode = 200; res.setHeader('Content-Type', 'text/plain'); res.end('Hello, World!'); }); server.listen(3000, 'localhost', () => { console.log('Server running at http://localhost:3000/'); });
Copier après la connexion启动 3 个服务器:
$ node server.js $ node server.js $ node server.js
Copier après la connexion- Nginx 配置文件(参考之前的示例)。
通过以上配置,我们可以在浏览器中访问 http://localhost
Ce qui suit est un exemple de configuration simple :
Parmi eux, le bloc
upstream
définit un ensemble de serveurs backend d'équilibrage de charge 🎜🎜server
définit le bloc 🎜🎜server
; Configuration du port d'écoute et des accès. 🎜🎜Enregistrez et quittez le fichier de configuration, puis redémarrez le service Nginx pour que la configuration prenne effet : 🎜rrreee🎜 2. Configurez la stratégie d'équilibrage de charge 🎜Afin d'obtenir un équilibrage de charge, vous pouvez définir différents équilibrages de charge stratégies dans le fichier de configuration Nginx. Voici quelques stratégies d’équilibrage de charge couramment utilisées. 🎜🎜🎜🎜Stratégie Round-Robin : 🎜Cette stratégie alloue les requêtes de manière séquentielle dans l'ordre des serveurs backend. 🎜rrreee🎜🎜🎜Stratégie de hachage IP : 🎜Cette stratégie envoie les requêtes du même client au même serveur backend en hachant l'adresse IP du client. 🎜rrreee🎜🎜🎜Stratégie Round-Robin pondérée : 🎜Cette stratégie alloue les requêtes en fonction du poids du serveur backend. 🎜rrreee🎜🎜3. Configurer le contrôle de santé et la tolérance aux pannes🎜Afin d'atteindre une haute disponibilité, nous devons effectuer des contrôles de santé sur le serveur backend et effectuer une tolérance aux pannes lorsque le serveur est indisponible. 🎜🎜🎜Bilan de santé : 🎜Vous pouvez implémenter le bilan de santé de Nginx sur le serveur backend via le module nginx_http_healthcheck_module
ou nginx-stream-healthcheck-module
. 🎜🎜🎜Traitement de tolérance aux pannes : 🎜Lorsqu'un serveur backend est indisponible, Nginx peut envoyer des requêtes à d'autres serveurs disponibles pour atteindre la tolérance aux pannes. Voici un exemple simple de configuration tolérante aux pannes : 🎜rrreee🎜🎜Dans la configuration ci-dessus, le paramètre backup
spécifie un serveur de sauvegarde Lorsque le serveur principal est indisponible, les requêtes seront transférées. au serveur de sauvegarde. 🎜🎜4. Exemple de code🎜Ce qui suit est un exemple simple de serveur Web basé sur Node.js pour démontrer la fonction d'équilibrage de charge de Nginx. 🎜🎜🎜🎜server.js : 🎜rrreee🎜🎜🎜Démarrer 3 serveurs : 🎜rrreee🎜🎜Fichier de configuration Nginx (se référer à l'exemple précédent). 🎜🎜Avec la configuration ci-dessus, nous pouvons accéder à http://localhost
dans le navigateur et observer que les requêtes sont distribuées vers différents serveurs backend à chaque fois que la page est actualisée. 🎜🎜Conclusion :🎜Cet article explique comment utiliser Nginx pour créer un cluster Web hautement disponible et fournit des exemples d'installation, de configuration et de code. En configurant correctement les stratégies d'équilibrage de charge, les contrôles de santé et la tolérance aux pannes, la stabilité et la fiabilité du cluster Web en cas de trafic élevé peuvent être assurées. J'espère que cet article vous sera utile, merci d'avoir lu ! 🎜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)

Sujets chauds

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.

Étapes pour exécuter ThinkPHP Framework localement : Téléchargez et décompressez ThinkPHP Framework dans un répertoire local. Créez un hôte virtuel (facultatif) pointant vers le répertoire racine ThinkPHP. Configurez les paramètres de connexion à la base de données. Démarrez le serveur Web. Initialisez l'application ThinkPHP. Accédez à l'URL de l'application ThinkPHP et exécutez-la.

Les commandes de démarrage et d'arrêt de Nginx sont respectivement nginx et nginx -s quit. La commande start démarre directement le serveur, tandis que la commande stop arrête le serveur en douceur, permettant ainsi de traiter toutes les requêtes en cours. Les autres signaux d'arrêt disponibles incluent l'arrêt et le rechargement.

Pour résoudre l'erreur "Bienvenue sur nginx!", vous devez vérifier la configuration de l'hôte virtuel, activer l'hôte virtuel, recharger Nginx, si le fichier de configuration de l'hôte virtuel est introuvable, créer une page par défaut et recharger Nginx, puis le message d'erreur. disparaîtra et le site Web sera affiché normalement.

É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

Pour vous inscrire à phpMyAdmin, vous devez d'abord créer un utilisateur MySQL et lui accorder des autorisations, puis télécharger, installer et configurer phpMyAdmin, et enfin vous connecter à phpMyAdmin pour gérer la base de données.

nginx apparaît lors de l'accès au site Web. Les raisons peuvent être : maintenance du serveur, serveur occupé, cache du navigateur, problèmes DNS, blocage du pare-feu, mauvaise configuration du site Web, problèmes de connexion réseau ou site Web en panne. Essayez les solutions suivantes : attendez la fin de la maintenance, visitez pendant les heures creuses, videz le cache de votre navigateur, videz votre cache DNS, désactivez le pare-feu ou le logiciel antivirus, contactez l'administrateur du site, vérifiez votre connexion réseau ou utilisez un moteur de recherche ou archive Web pour trouver une autre copie du site. Si le problème persiste, veuillez contacter l'administrateur du site.

Il existe cinq méthodes de communication de conteneur dans l'environnement Docker : réseau partagé, Docker Compose, proxy réseau, volume partagé et file d'attente de messages. En fonction de vos besoins d'isolation et de sécurité, choisissez la méthode de communication la plus appropriée, par exemple en utilisant Docker Compose pour simplifier les connexions ou en utilisant un proxy réseau pour augmenter l'isolation.
