[Nginx 3] - Nginx implémente un proxy inverse

Répertoire des articles de la série

[Nginx 1]——Introduction à Nginx (proxy direct, proxy inverse, équilibrage de charge, séparation dynamique et statique)
[Nginx 2]——Fichier de configuration de commande commun Nginx,
comment Nginx traite les requêtes



avant-propos

Ce blog présente principalement comment Nginx implémente le proxy inverse, ce qu'est le proxy inverse et des exemples pour implémenter le proxy inverse.


1. Qu'est-ce qu'un proxy inverse ?

Le serveur proxy reçoit la requête sur le réseau, puis transmet la requête au serveur sur le réseau interne, et retourne le résultat obtenu du serveur au client connecté sur le réseau.

Contexte : Premièrement, il y a un utilisateur C, trois serveurs S1, S2 et S3, mais S1 est ouvert au réseau externe, S2 et S3 ne sont pas ouverts au réseau externe, et il y a une ressource D, qui est placée sur le serveurs S2 et S3.

L'utilisateur C ne sait pas que la ressource D se trouve sur les serveurs S2 et S3, il sait seulement qu'il peut obtenir la ressource D en visitant le serveur S1, il accède donc directement au serveur S1 à chaque fois, mais les ressources fournies à l'utilisateur C proviennent toutes du serveur S2 ou S3.

Pour l'utilisateur C, le proxy inverse ne sait pas où se trouve la ressource D ni qui la fournit.

Pour le serveur S1, il accepte à chaque fois la demande de l'utilisateur, puis envoie la demande au serveur S2 ou S3 qui fournit la ressource D selon la politique de planification. Pour les serveurs S2 et S3, ils ne connaissent pas non plus la vérité de accéder à la ressource D. Quel que soit l'utilisateur, il se contente d'interagir avec le serveur S1.

Deuxièmement, Nginx implémente un proxy inverse

Schéma de principe de mise en place d'un reverse proxy :
insérez la description de l'image ici

1. Préparation et accès à l'environnement Tomcat

Installez tomcat sur le serveur Linux et démarrez-le. L'ip de la machine virtuelle linux est 192.168.60.123
insérez la description de l'image ici
pour accéder au serveur tomcat via ip+port numéro 8080 ; la page a été consultée avec succès :
insérez la description de l'image ici

2. Accéder à Tomcat via le nom de domaine

La relation de mappage entre le nom de domaine et l'ip est effectuée dans le fichier hosts sous windows. C:\WINDOWS\system32\drivers\etc

La fonction de la configuration du fichier hôte sur Windows 10 est d'établir une "base de données" d'association entre certains noms de domaine de sites Web couramment utilisés et leurs adresses IP correspondantes. La fonction principale de ce fichier est de définir la relation de mappage entre les adresses IP et les noms d'hôte, et c'est une règle pour mapper les adresses IP et les noms d'hôte³. Lorsque nous entrons une URL dans le navigateur, le navigateur va d'abord chercher dans le fichier des hôtes locaux. Si l'adresse IP correspondante est trouvée, il accèdera directement au serveur correspondant à l'adresse IP, sinon il enverra une requête au serveur DNS pour obtenir l'URL correspondant à l'adresse IP.

Exemple (comme indiqué sur la figure :)

insérez la description de l'image ici
L'IP de la machine virtuelle Linux est 192.168.60.123
insérez la description de l'image ici

Cette fois, accédez via le nom de domaine www.test.com + numéro de port 8080.

Réalisez la capture d'écran de l'effet :
insérez la description de l'image ici

3. Accès via un nom de domaine sans numéro de port (réaliser un proxy inverse)

Modifiez le fichier de configuration de Nginx, modifiez le fichier nginx.conf et modifiez le module serveur.
Tout d'abord, nginx écoutera les demandes sur le port 80, puis fera correspondre les demandes avec un nom de service de 192.168.60.123, puis les fera correspondre selon les règles de correspondance d'emplacement. Pour transmettre la requête au serveur proxy HTTP, utilisez la directive proxy_pass pour lire ce blog pour en savoir plus sur la façon dont Nginx gère les requêtes

Le code est le suivant (exemple) :

server {
    
    
        listen 80;
        server_name 192.168.60.123;
         location / {
    
    
         proxy_pass http://192.168.60.123:8080;  
             }
 }
 

Après configuration, accédez via le nom de domaine www.test.com

Réalisez la capture d'écran de l'effet :
insérez la description de l'image ici


Résumer

Il n'est pas difficile de voir que le proxy inverse ne connaît pas le serveur de destination du client, et le client sait seulement que le serveur proxy demandeur peut obtenir les ressources requises. Le serveur proxy peut être configuré en conséquence pour intercepter les demandes des clients vers nos serveurs principaux, et ce faisant, le serveur proxy peut protéger l'identité du serveur de destination et servir de défense supplémentaire contre les attaques de sécurité.

Je suppose que tu aimes

Origine blog.csdn.net/wangwei021933/article/details/129861962
conseillé
Classement