J'utilise deux serveurs pour configurer le proxy inverse.
Le serveur A transmet toutes les requêtes au groupe de serveurs de test via la configuration suivante (bien qu'il n'y en ait qu'une seule dans le groupe)
listen 80;
root /home/www;
......
upstream test {
server 123.45.567.89:80 weight=1; // 服务器B
}
location / {
proxy_pass http://test;
}
L'accès au serveur A via le navigateur renvoie le contenu du serveur B.
Voici la question :
1. Le serveur B (le serveur proxy inverse) ne semble nécessiter aucune configuration ?
2. Tant que le serveur proxy n'a pas de paramètres de blocage, puis-je m'inscrire en amont pour devenir mon serveur proxy inverse ?
3. Lors de l'utilisation d'un proxy inverse pour l'équilibrage de charge, les projets sur le serveur B doivent-ils être cohérents avec les projets sur le serveur A ?
Point 1 : Pour faire simple, l'objet proxy ne nécessite aucune configuration, mais il est à noter que si vous souhaitez traiter l'IP source de la requête sur B, alors vous devez faire une configuration sur nginx sur A, et modifier l'adresse IP source Mettez-la dans l'en-tête de la requête, par exemple,
Point 2 : Je n'ai jamais utilisé en amont, d'habitude j'utilise proxy_pass1 Le serveur proxy B ne nécessite aucun paramètre
2 L'ajout de plusieurs groupes de serveurs en amont est ce qu'on appelle la configuration d'équilibrage de charge. Configurez ensuite proxy_pass
3. Le serveur à charge équilibrée partage théoriquement les données et a la même activité, mais est distribué et déployé sur différentes machines pour réduire la pression du serveur. (L'affiche peut démarrer plusieurs services avec la même activité sur différents ports du même serveur, et configurer l'équilibrage de charge, vérifiez-le faites-le vous-même !)
Il existe actuellement plusieurs méthodes de stratégie d'équilibrage de charge
Polling (par défaut) : chaque requête est attribuée à un serveur backend différent une par une dans l'ordre chronologique. Si le serveur backend tombe en panne, il peut être automatiquement éliminé.
weight : spécifiez la probabilité d'interrogation, le poids est proportionnel au taux d'accès et est utilisé lorsque les performances du serveur back-end sont inégales.
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 backend, ce qui peut résoudre le problème de session.
équitable (tiers) : Attribuez les requêtes en fonction du temps de réponse du serveur backend, avec une priorité donnée à celles ayant des temps de réponse courts.
url_hash (tiers) : Distribuez les requêtes en fonction du résultat de hachage de l'URL consultée, de sorte que chaque URL soit dirigée vers le même serveur back-end. C'est plus efficace lorsque le serveur back-end est mis en cache.