Maison  >  Article  >  Opération et maintenance  >  Configurer Nginx pour réaliser l'équilibrage de charge (image)

Configurer Nginx pour réaliser l'équilibrage de charge (image)

angryTom
angryTomavant
2019-11-25 15:48:514161parcourir

Lorsque les entreprises résolvent des problèmes de concurrence élevée, elles ont généralement deux stratégies de traitement, logicielle et matérielle, un équilibreur de charge est ajouté pour distribuer un grand nombre de requêtes. Sur le logiciel, un équilibreur de charge peut être ajouté en même temps. Goulot d'étranglement à forte concurrence : base de données + serveur Web, parmi lesquels la solution la plus couramment utilisée pour ajouter de la charge sur la couche avant du serveur Web consiste à utiliser nginx pour réaliser l'équilibrage de charge.

Configurer Nginx pour réaliser l'équilibrage de charge (image)

1. Le rôle de l'équilibrage de charge

1. Selon un certain algorithme [pondération, sondage] transmet les requêtes des clients à différents serveurs d'applications, réduisant ainsi la pression sur un seul serveur et augmentant la concurrence du système.

2. Suppression des défauts

Utilisez la détection des battements de cœur pour déterminer si le serveur d'applications peut actuellement fonctionner normalement. Si le serveur tombe en panne, la demande sera automatiquement envoyée à d'autres serveurs d'applications.

3. Restaurer et ajouter

(apprentissage recommandé :

tutoriel nginx

) S'il est détecté que le serveur d'applications défaillant a repris son travail, il sera ajouté automatiquement. Rejoignez l'équipe qui gère les demandes des utilisateurs.

2. Nginx implémente l'équilibrage de charge

Utilise également deux tomcats pour simuler deux serveurs d'applications, les numéros de port sont 8080 et 8081.

1. La stratégie de distribution de charge de Nginx

L'amont de Nginx prend actuellement en charge l'algorithme de distribution :

1), interrogation - traitement 1:1 à tour de rôle Requêtes (par défaut)

Chaque requête est attribuée à un serveur d'applications différent une par une dans l'ordre chronologique. Si le serveur d'applications tombe en panne, il sera automatiquement éliminé et les autres continueront d'être interrogées.

2), poids - vous pouvez augmenter

En configurant le poids, spécifiez la probabilité d'interrogation, le poids est proportionnel au taux d'accès, qui est utilisé lorsque les performances du serveur d'applications ne sont pas bonnes dans la moyenne.

3), algorithme ip_hash

Chaque requête est allouée en fonction du résultat de hachage de l'IP accédée, afin que chaque visiteur ait un accès fixe à un serveur d'application, ce qui peut résoudre les problèmes partagés de la session.

2. Configurez la stratégie d'équilibrage de charge et de distribution de Nginx

Cela peut être réalisé en ajoutant des paramètres spécifiés après l'adresse IP du serveur d'application ajoutée dans les paramètres en amont, tels que :

upstream tomcatserver1 {  
    server 192.168.72.49:8080 weight=3;  
    server 192.168.72.49:8081;  
}   
server {  
    listen 80;  
    server_name  8080.max.com;  
    #charset koi8-r;  
    #access_log  logs/host.access.log  main;  
   location / {  
      proxy_pass   http://tomcatserver1;  
      index  index.html index.htm;  
   }  
}

Réussi La configuration ci-dessus peut être réalisée. Lors de l'accès au site Web

8080.max.com

, en raison de la configuration de l'adresse proxy_pass, toutes les requêtes passeront d'abord par le serveur proxy inverse nginx. , puis le serveur Lorsque la demande est transmise à l'hôte de destination, lira l'adresse en amont de tomcatsever1, lira la politique de distribution et configurera le poids de tomcat1 sur 3, donc nginx enverra la plupart des requêtes à tomcat1 sur le serveur 49, qui est le port 8080 ; un nombre plus petit sera envoyé à tomcat1 sur le serveur 49, qui est le port 8080 ; pour obtenir un équilibrage de charge conditionnel. Bien entendu, cette condition est la capacité de traitement des demandes d'index matériel des serveurs 1 et 2.
3. Autres configurations de nginx

upstream myServer {    
  
    server 192.168.72.49:9090 down;   
    server 192.168.72.49:8080 weight=2;   
    server 192.168.72.49:6060;   
    server 192.168.72.49:7070 backup;   
}

1) down

signifie que le serveur frontal unique ne participera pas temporairement au chargement

2) Poids

La valeur par défaut est 1. Plus le poids est important, plus le poids de la charge est important.

3) max_fails

Le nombre d'échecs de requêtes autorisés est de 1 par défaut. Lorsque le nombre maximum est dépassé, l'erreur définie par le module proxy_next_upstream est renvoyée

4) fail_timeout

Temps de pause après les échecs max_fails.

5) Sauvegarde

Lorsque toutes les autres machines non sauvegardées sont en panne ou occupées, demandez la machine de sauvegarde. Cette machine aura donc le moins de pression.

3. Haute disponibilité à l'aide de Nginx

En plus d'atteindre la haute disponibilité du site Web, c'est-à-dire de fournir n plusieurs serveurs pour publier le même service et ajouter un équilibrage de charge Le serveur distribue les requêtes pour garantir que chaque serveur peut traiter des requêtes relativement saturées dans des conditions de concurrence élevée. De même, le serveur d'équilibrage de charge doit également être hautement disponible pour éviter que les serveurs d'applications suivants ne soient perturbés et incapables de fonctionner si le serveur d'équilibrage de charge raccroche.

Une solution pour atteindre la haute disponibilité : ajouter de la redondance. Ajoutez n serveurs nginx pour éviter le point de défaillance unique ci-dessus.

4. Résumé

Pour résumer, l'équilibrage de charge, qu'il s'agisse d'une variété de solutions logicielles ou matérielles, distribue principalement un grand nombre de requêtes simultanées selon certaines règles. . Laissez différents serveurs le gérer, réduisant ainsi la pression instantanée sur un certain serveur et améliorant la capacité anti-concurrence du site Web. L'auteur estime que la raison pour laquelle nginx est largement utilisé dans l'équilibrage de charge est due à sa configuration flexible. Un fichier nginx.conf résout la plupart des problèmes, qu'il s'agisse de nginx créant un serveur virtuel, d'un serveur proxy inverse nginx ou de nginx présenté dans cet article. L'équilibrage de charge est presque toujours effectué dans ce fichier de configuration. Le serveur est uniquement responsable de la configuration de nginx et de son exécution. De plus, il est léger et permet d’obtenir de meilleurs résultats sans occuper trop de ressources du serveur.

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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer