Maison  >  Article  >  Opération et maintenance  >  La différence entre nginx et lvs

La différence entre nginx et lvs

(*-*)浩
(*-*)浩original
2019-06-04 16:53:104154parcourir

Lvs et nginx peuvent être utilisés comme solutions de chargement multi-machines. Ils ont chacun leurs propres avantages et inconvénients. Dans l'environnement de production, la situation réelle doit être soigneusement analysée et utilisée.

La différence entre nginx et lvs

Avantages de lvs :

1. Forte résistance à la charge, car la logique de fonctionnement de lvs est très simple, et elle fonctionne au niveau de la couche 4 de la couche réseau et n'est utilisé que pour la distribution des requêtes. Il n'y a pas de trafic, il n'est donc fondamentalement pas nécessaire de trop penser à l'efficacité. LVS échoue généralement rarement. Même si c'est le cas, c'est généralement un problème ailleurs (comme la mémoire, le processeur, etc.) qui provoque des problèmes LVS.

2. Configurabilité, c'est généralement un inconvénient majeur et aussi un avantage majeur, car il n'y a pas beaucoup d'options configurables, donc à part l'ajout ou la suppression de serveurs, vous n'avez pas besoin d'y toucher souvent, ce qui est grandement Réduit le risque d’erreur humaine.

3. Travail stable, car la province a une forte résistance à la charge, une stabilité élevée est donc naturelle. De plus, divers LVS disposent de solutions complètes de sauvegarde à chaud à double machine, il n'y a donc pas lieu de s'inquiéter de l'égaliseur lui-même. Quels problèmes peuvent survenir ? Si un nœud tombe en panne, LVS l'identifiera automatiquement, de sorte que le système global est très stable.

4. Pas de trafic, lvs distribue uniquement les requêtes et le trafic ne sort pas de lui-même, vous pouvez donc l'utiliser pour effectuer un détournement de ligne. Il n'y a pas de trafic et les performances IO de l'égaliseur ne sont pas affectées par un trafic important.

5.lvs peut essentiellement prendre en charge toutes les applications. Étant donné que le travail vert se situe sur la couche 4, il peut équilibrer la charge de presque toutes les applications, y compris http, les bases de données, les salons de discussion, etc.

De plus : lvs n'est pas complètement capable d'identifier les pannes de nœuds. Par exemple, dans le mode d'allocation wlc, si un nœud du cluster n'est pas configuré avec VIP, l'ensemble du cluster sera inutilisable. , si la méthode d'allocation wrr est utilisée, elle sera perdue. Ce problème est actuellement encore en cours de tests. Il est donc préférable d’être plus prudent lors de l’utilisation de LVS.

Les résultats de la comparaison entre nginx et lvs :

1.nginx fonctionne sur la 7ème couche du réseau, il peut donc implémenter des stratégies de déchargement pour l'application http elle-même , comme pour les noms de domaine, les structures de répertoires, etc., en comparaison, lvs n'a pas de telles fonctions, donc nginx peut être utilisé dans bien plus de situations que lvs basé sur cela seul, mais ces fonctions utiles de nginx le rendent plus ajustable que ; LVS, il faut donc souvent le toucher. À en juger par le deuxième avantage du LVS, plus vous le touchez, plus le risque de problèmes humains est grand.

2.nginx dépend moins du réseau. Théoriquement, tant que le ping est réussi et que l'accès à la page Web est normal, nginx peut également faire la distinction entre les réseaux internes et externes. qui possède à la fois des réseaux internes et externes, ce qui équivaut à une seule machine disposant d'une ligne de sauvegarde, LVS dépend davantage de l'environnement réseau. À l'heure actuelle, le serveur est dans le même segment de réseau et LVS utilise le mode direct pour détourner le trafic. l'effet est mieux garanti. Notez également que LVS doit demander au moins une IP auprès du fournisseur d'hébergement pour être utilisée comme IP visuelle. Il semble que les IP de la même province ne puissent pas être utilisées comme VIP. Pour être un bon administrateur LVS, vous devez vraiment suivre et acquérir beaucoup de connaissances sur la communication réseau. Ce n'est plus aussi simple que http.

3.nginx est relativement simple à installer et à configurer, et il est également très pratique à tester, car il peut essentiellement imprimer les erreurs dans les journaux. L'installation, la configuration et les tests de LVS prennent un temps relativement long, car comme mentionné ci-dessus, LVS dépend fortement du réseau. Dans de nombreux cas, l'échec de la configuration est dû à des problèmes de réseau plutôt qu'à des problèmes de configuration. problème, il doit être résolu en conséquence. Ce sera beaucoup plus gênant.

4.nginx peut également supporter une charge élevée et est stable, mais la charge est très faible et la stabilité est mauvaise. Il existe plusieurs niveaux de LV : nginx gère tout le trafic, il est donc limité par les E/S de la machine et. configuration ; ses propres bogues sont également inévitables ; nginx n'a pas de solution de sauvegarde à chaud prête à l'emploi pour deux machines, donc exécuter sur une seule machine est encore relativement risqué, et il est difficile de dire quoi que ce soit sur une seule machine.

5.nginx peut détecter les pannes internes du serveur, telles que les codes d'état, les délais d'attente, etc. renvoyés par le serveur traitant les pages Web, et soumettra à nouveau les requêtes qui renvoient des erreurs à un autre nœud. Actuellement, ldirectd dans lvs peut également prendre en charge la surveillance de la situation interne du serveur, mais le principe de lvs l'empêche de renvoyer des requêtes. Concernant le renvoi de la demande, par exemple, si l'utilisateur télécharge un fichier et que le nœud traitant le téléchargement échoue pendant le processus de téléchargement, nginx basculera le téléchargement vers un autre serveur pour le retraitement, et lvs sera directement déconnecté si les utilisateurs. peut être ennuyé par le téléchargement d’un fichier volumineux ou important.

6. Le traitement asynchrone des requêtes par nginx peut aider le serveur de nœuds à réduire la charge. Si vous utilisez Apache pour fournir des services externes directs, alors lorsqu'il existe de nombreuses liaisons à bande étroite, le serveur Apache en occupera une grande partie. de mémoire et ne peut pas être libéré. ​​Si nginx agit comme un proxy Apache, ces liens à bande étroite seront bloqués par nginx et trop de requêtes ne s'accumuleront pas sur Apache, réduisant ainsi considérablement l'utilisation de la mémoire. L'utilisation de Squid a le même effet à cet égard. Même si Squid lui-même est configuré pour ne pas mettre en cache, il sera toujours d'une grande aide pour Apache. LVS ne possède pas ces fonctions, il ne peut donc pas être comparé.

nginx peut également être utilisé comme proxy de niveau intermédiaire. À ce niveau, nginx n'a pratiquement aucun rival. Le seul qui peut défier nginx est lighttpd. Cependant, lighttpd n'a actuellement pas toutes les fonctionnalités de nginx. la configuration n'est pas si claire et facile à lire. De plus, l'adresse IP de l'agent de niveau intermédiaire est également importante, donc disposer d'un VIP et d'un LVS pour le secteur des agents de niveau intermédiaire est la solution la plus parfaite.

L'application spécifique doit être analysée en détail. S'il s'agit d'un site Web relativement petit (pv quotidien

Pour plus d'articles techniques liés à Nginx, veuillez visiter la colonne Tutoriel d'utilisation de Nginx pour apprendre !

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:
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