Nginx, le fameux Nginx ! C'est un puissant logiciel open source, fièrement connu pour ses hautes performances et sa stabilité. Il peut faire beaucoup de choses comme l'équilibrage de charge Nginx et peut également être utilisé en conjonction avec des proxys pour rendre votre monde en ligne plus accessible.
I. Équilibrage de charge Nginx
L'équilibrage de la charge est, il faut bien le dire, un casse-tête pour de nombreux ingénieurs informatiques. Supposons que vous ayez un serveur trop occupé pour faire face au nombre considérable de visites sur le web, alors que faire ? L'équilibrage de charge Nginx a vu le jour, agissant comme un arbitre magique qui peut répartir uniformément les demandes des utilisateurs sur différents serveurs, réduisant ainsi la pression de la charge sur un seul serveur.
Il existe plusieurs modules d'équilibrage de charge pour Nginx, dont le plus couramment utilisé est l'algorithme ip_hash. Cet algorithme attribue les requêtes aux serveurs dorsaux en fonction de l'adresse IP de l'utilisateur. Cette approche garantit que les requêtes d'un même utilisateur sont envoyées au même serveur, ce qui est utile dans de nombreux scénarios d'application, tels que les jeux en ligne ou les sites d'achat.
II. l'agence positive
Ensuite, parlons des proxys en aval. Le proxy direct, par opposition au proxy inverse, signifie que le serveur proxy est situé entre le client et le serveur cible, et que le client envoie une requête au serveur cible par l'intermédiaire du serveur proxy, de manière à dissimuler l'adresse IP réelle du client, etc. Ce concept est très utile pour certains scénarios qui nécessitent un accès par proxy, comme la navigation sur le web ou l'accès à des sites web multinationaux.
Lorsque nous utilisons Nginx en tant que proxy direct, nous devons configurer les paramètres relatifs au proxy inverse. Tout d'abord, nous devons ajouter la configuration suivante sous le module http :
http {
...
proxy_pass http://your_target_server ; proxy_set_header Host $host ; proxy_set_header
proxy_set_header Host $host.
...
}
Ainsi, lorsqu'un utilisateur envoie une requête, Nginx se charge de la transmettre au serveur cible. Nous pouvons également définir certaines informations d'en-tête HTTP qui seront transmises au serveur cible, telles que Host, à l'aide de la directive proxy_set_header.
III. utilisation combinée
Maintenant que nous en savons un peu plus sur l'équilibrage de charge et le forward proxying de Nginx, voyons comment les utiliser ensemble. Tout d'abord, nous devons ajouter la configuration suivante à notre fichier de configuration Nginx.conf :
http {
...
backend en amont {
serveur backend1.example.com ; serveur backend2.example.com ; serveur backend2.example.com ; serveur backend2.example.com
serveur backend2.example.com ; serveur backend3.example.com ; serveur backend4.example.com ; serveur backend5.example.com
upstream backend { server backend1.example.com ; server backend2.example.com ; server backend3.example.com ; ...
...
}
...
serveur {
...
location / {
proxy_pass http://backend ; proxy_set_header Host $host ; proxy_set_header
proxy_set_header Host $host.
}
...
}
...
}
Dans cette configuration, nous définissons une grappe de serveurs appelée backend. Dans le cluster, nous pouvons ajouter plusieurs serveurs backend, qui peuvent être identiques ou différents. Ainsi, lorsqu'un utilisateur envoie une requête, Nginx la distribue aux serveurs backend de manière équilibrée.
Dans le même temps, nous définissons les paramètres liés au forward proxying dans la section location du bloc serveur, en spécifiant l'adresse du serveur back-end vers lequel la requête est transférée et en transmettant les en-têtes HTTP. De cette manière, Nginx met en œuvre à la fois l'équilibrage de charge et le forward proxying.