Dans l'architecture moderne de l'Internet, Nginx est un serveur HTTP et reverse proxy très performant, largement utilisé dans toutes sortes de sites web et de services d'application. Aujourd'hui, nous allons parler de la différence entre la configuration du forward proxy et du reverse proxy dans Nginx. Ces deux mots sont presque identiques, mais leurs rôles et leurs configurations sont très différents.
Qu'est-ce qu'une procuration positive ?
Un forward proxy, comme son nom l'indique, est un proxy permettant à un client d'accéder à un serveur. Supposons que vous vouliez aller sur un certain site web, mais que vous ne vouliez pas que le site sache que vous y êtes allé, alors vous trouvez un intermédiaire, cet intermédiaire vous aide à visiter le site web, et vous renvoie ensuite le contenu. Cet intermédiaire est le proxy positif.
Il n'est pas très difficile de configurer un proxy direct dans Nginx. Tout d'abord, vous devez ajouter un nouveau bloc serveur à votre fichier de configuration Nginx, puis configurer les directives relatives au proxy. Voici un exemple simple :
serveur {
listen 8080 ; server_name proxy.example.com ; server_name
nom_du_serveur proxy.exemple.com ;
location / {
proxy_pass http://$http_host$request_uri ; proxy_set_header Host $http_host ; location / {
proxy_set_header Host $http_host ; proxy_set_header X-Real-IP $remote_addr ; proxy_server_name
proxy_set_header X-Real-IP $remote_addr ; proxy_set_header
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for ;
}
}
Cette configuration signifie que lorsque vous visitez proxy.example.com:8080, Nginx transmet votre requête au serveur cible que vous souhaitez visiter et vous renvoie la réponse du serveur cible. De cette manière, le serveur cible ne connaît pas votre véritable adresse IP.
Qu'est-ce qu'un proxy inverse ?
Le proxy inverse, qui semble un peu compliqué, est en fait un serveur proxy qui permet d'accéder au client. Ou par analogie, vous avez un site web, le nombre de visites est particulièrement important, la pression du serveur est montagneuse. Alors vous trouvez un intermédiaire, cet intermédiaire pour vous aider à partager la pression d'accès, toutes les requêtes vont d'abord à l'intermédiaire là, puis à l'intermédiaire pour accéder à votre serveur, les résultats sont renvoyés au client. Cet intermédiaire est le reverse proxy.
La configuration d'un proxy inverse dans Nginx n'est pas très compliquée. Vous devez ajouter un nouveau bloc serveur au fichier de configuration de Nginx, puis définir les directives relatives au proxy. Voici un exemple simple :
serveur {
listen 80 ; server_name ;
nom_du_serveur www.example.com ;
location / {
proxy_pass http://backend_server ; proxy_set_header
proxy_set_header Host $host ; proxy_set_header X-Real-IP $remote_addr ; proxy_set_header
proxy_set_header X-Real-IP $remote_addr ; proxy_set_header X-Forwarded-For $proxy_addr
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for ; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for
proxy_set_header X-Forwarded-Proto $scheme ;
}
}
Cette configuration signifie que lorsque vous visitez www.example.com的时候, Nginx transmet votre requête à un serveur dorsal nommé backend_server et vous renvoie la réponse du serveur dorsal. De cette manière, votre serveur backend peut se concentrer sur la logique commerciale sans se soucier d'être submergé de requêtes.
Différence entre le mandataire direct et le mandataire indirect
Bien que les proxies directs et les proxies inversés semblent similaires, leurs utilisations et leurs configurations sont très différentes. En résumé, les principaux points sont les suivants :
- Les utilisations varient :Les proxys avancés sont principalement utilisés par les clients pour masquer leur identité et accéder à des ressources restreintes ; les proxys inversés sont principalement utilisés par les serveurs pour répartir la charge et améliorer la disponibilité et la sécurité.
- Les configurations sont différentes :Les proxys directs nécessitent généralement la configuration des paramètres du proxy côté client, tandis que les proxys inversés nécessitent une configuration côté serveur.
- Les directions sont différentes :Le proxy direct est le lien entre le client et le serveur proxy et le serveur cible ; le proxy inverse est le lien entre le client et le serveur proxy et le serveur dorsal.
Petits détails dans la configuration
Lors de la configuration des proxys directs et inversés, il convient de garder à l'esprit quelques détails mineurs. Par exemple, dans le cas d'un proxy direct, l'URL de la directive proxy_pass est généralement dynamique, alors que dans le cas d'un proxy inverse, l'URL de la directive proxy_pass est généralement statique. En outre, des contrôles supplémentaires d'authentification et d'autorisation peuvent être nécessaires dans les proxys directs, tandis que des questions telles que l'équilibrage de la charge et la mise en cache doivent être prises en compte dans les proxys inversés.
remarques finales
Dans l'ensemble, bien que le forward proxy et le reverse proxy semblent similaires, ils ont des utilisations et des méthodes de configuration différentes en pratique. Nous espérons qu'à travers cet article, vous aurez une compréhension claire des proxys forward et reverse dans Nginx. Que vous construisiez un forward proxy pour un accès anonyme ou un reverse proxy hautement disponible, vous pouvez les configurer en fonction de vos besoins réels. Amusez-vous bien avec Nginx et prenez plaisir à apprendre !