C'est probablement le tutoriel sur le proxy inverse de Nginx le plus marrant mais le plus utile que vous ayez jamais vu !
La procuration inversée pour équilibrer la charge, avec l'ouverture d'un restaurant de hot pot pour trouver le maître de la préparation des aliments, a une raison d'être. Si vous ne pouvez pas couper les légumes dans l'arrière-salle, demandez à quelques chefs supplémentaires de se relayer pour couper la viande. Nginx est le contremaître qui assigne les tâches, mais si le contremaître est fatigué, tout l'atelier doit fermer. Aujourd'hui, nous allons utiliser l'IP proxy d'ipipgo comme maître de bord, pour vous apprendre comment permettre au contremaître non seulement d'économiser de l'énergie, mais aussi de supporter les périodes de pointe.
Configuration de base : le proxy inversé n'est pas qu'un nouveau gilet
Beaucoup de débutants pensent que changer un paramètre proxy_pass même si le proxy inverse, qui est comme un restaurant de hot pot dans l'arrière-cuisine accrochant un panneau "cuisine centrale". Pour que le trafic soit réellement acheminé, vous devez vous souvenir des trois paramètres les plus importants :
paramètres | valeur de la vie | valeur de préservation de la vie |
---|---|---|
proxy_connect_timeout | Défaut 60 ans | 5s |
proxy_read_timeout | Défaut 60 ans | 15s |
proxy_send_timeout | Défaut 60 ans | 15s |
Lorsque vous connectez le pool d'IP proxy d'ipipgo, il est recommandé d'ajouter l'optionproxy_next_upstreamConfiguration. Par exemple, le passage automatique au nœud suivant lorsqu'un nœud IP répond avec plus de 500 codes d'état est une astuce qui permet de sauver des vies.
Gestion des pools d'adresses IP : ne mettez pas tous vos œufs dans le même panier
J'ai vu trop de gens utiliser des IP proxy comme des baguettes jetables et les jeter quand ils ont fini. Le pool d'IP résidentielles d'ipipgo a plus de 90 millions de ressources, mais il faut pouvoir nourrir le poisson :
1. la période de rotation de l'IP dynamique ne varie pas en minutes, en fonction des paramètres de pointe de l'entreprise
2. l'IP statique doit faire l'objet d'un bilan de santé régulier ; il ne faut pas attendre qu'il se passe quelque chose pour s'en apercevoir
3. les PI des différentes régions sont gérés séparément, comme les cornichons du Nord-Est et le pot au feu de Chongqing ne peuvent pas être cuits dans la même marmite.
Il est recommandé d'utiliser la fonctionmodule cartographiqueRegrouper les IP et programmer séparément les nœuds dans les différents pays de l'ipipgo. Par exemple, les nœuds européens sont spécialisés dans les demandes d'images et les nœuds américains gèrent les flux vidéo.
Optimisation des connexions : ne pas laisser le contremaître se débrouiller tout seul
Le mode de connexion courte par défaut de Nginx revient à demander au contremaître de se rendre dans l'arrière-cuisine pour chaque plat qu'il fait passer. L'ajout de ces deux paramètres permet d'économiser immédiatement des efforts :
keepalive 32 ; //nombre de connexions longues maintenues keepalive_timeout 60s ; //durée de maintien de la connexion
Notez qu'il doit être le même que celui du nœud proxy ipipgo.Concurrence maximaleCorrespondance. Si le nœud ne peut supporter qu'une concurrence de 20, la définition de 32 ici est un vœu pieux.
Stratégie de mise en cache : une bonne mémoire vaut mieux qu'une mauvaise
La mise en cache par proxy inverse ne se limite pas à l'ouverture d'un proxy_cache, c'est une question de posture :
- Contenu dynamique : 5 secondes de cache court + en-tête de validation
- Ressources statiques : mise en cache hiérarchique basée sur les types de fichiers
- Données clés : utilisation de memcached pour la mise en cache L2
Avec l'aide d'ipipgoSoutien au protocolequi met en cache la validation des certificats pour les requêtes HTTPS peut faire gagner du temps à la poignée de main 30%.
Reprise après sinistre : laisser une porte de sortie pour le réveillon du Nouvel An
L'opération la plus stupide que j'ai jamais vue est un nœud qui se bloque et tente désespérément de réessayer. Configurationmécanisme de fusionC'est important :
1. taux d'échec supérieur à 201 Isolation automatique des nœuds TP3T
2. résurrection automatique des nœuds en quarantaine après 30 minutes
3. maintenir le nœud de secours de 10% inactif en temps normal.
Avec ipipgo.API pour obtenir des nœuds dynamiquementqui met à jour la liste amont en temps réel, ce qui est beaucoup plus souple que de l'écrire à mort dans un fichier de configuration.
Session AQ : Les pièges que doivent éviter les débutants
Q : Que dois-je faire si j'obtiens toujours une erreur 502 ?
R : Quatre-vingt-dix pour cent est le délai d'attente du nœud proxy, vérifiez d'abord le temps de réponse du nœud ipipgo, puis ajustez le délai d'attente proxy_read_timeout de Nginx.
Q : Comment choisir entre l'IP dynamique et l'IP statique ?
R : statique pour les gardiens de session, dynamique pour les robots d'exploration. ipipgo prend en charge les deux, et peut être mélangé.
Q : Pourquoi n'arrive-t-on pas à augmenter la concurrence ?
R : 80% n'est pas ajusté worker_connections, cette valeur doit être supérieure au nombre maximum de concurrences. N'oubliez pas de modifier l'ulimit au niveau du système.
Le pool d'IP résidentiel d'ipipgo est naturellement anti-blocage, avec une configuration Nginx raisonnable, ce qui permet de supporter la forte concurrence de la combinaison du roi de la bombe. Ceux qui utilisent l'IP du centre de données et se plaignent encore d'être bloqués ne comprennent probablement pas la signification du proxy résidentiel.