Comment utiliser Nginx en tant que proxy inverse

Contrairement à Apache, pas plus Nginx Le serveur Web le plus populaire sur le marché. En plus d'être un serveur Web, il peut également être utilisé comme compteur de charge ou proxy inverse. Dans ce didacticiel, nous expliquerons comment vous pouvez tirer parti de Nginx en tant que proxy inverse.

Comment utiliser Nginx comme proxy inverse - Instructions

Qu'est-ce que le proxy inverse?

Le serveur proxy agit en tant qu'intermédiaire entre le client et un autre serveur. Il récupère les ressources du serveur auquel vous souhaitez vous connecter et vous les envoie pour les visualiser. Le proxy inverse fonctionne de la même manière, sauf que le rôle est inverse. Lorsque vous demandez des informations à un serveur, le proxy inverse suspend la demande et l'envoie au serveur principal approprié. Cela permet à l'administrateur système d'utiliser un serveur pour plusieurs applications et d'assurer un flux de trafic plus fluide entre le client et le serveur.

Avantages du proxy inverse

Sur votre demande, vous pouvez avoir différents cas d'utilisation pour l'agent inverse.

  1. Le proxy inverse vous permet d'exécuter plusieurs applications sur le même serveur. Si plusieurs applications s'exécutent sur le même serveur, tout le monde ne peut pas entendre le port 80 ou 433 en même temps. En utilisant un proxy inverse, vous pouvez configurer ce dernier pour qu'il redirige le trafic vers des applications individuelles, si nécessaire.
  2. Équilibrage de la charge - Si plusieurs serveurs exécutent la même application, vous pouvez utiliser un proxy inverse pour répartir le trafic de manière égale sur chaque serveur.
  3. Pare-feu d'application Web - Vous pouvez utiliser un proxy inverse pour masquer votre application du public et également pour filtrer la protection non souhaitée contre les attaques IP ou DDOS.
  4. Enregistrement et audit faciles - Comme tout le trafic entrant est géré par proxy inverse, il est plus facile d'enregistrer et de surveiller les flux de trafic.

Comment utiliser Nginx comme proxy inverse - Instructions

Configurer Nginx en tant que proxy inverse

Pour configurer Nginx en tant que proxy inverse, nous utiliserons le paramètre proxy_pass dans les fichiers de configuration de Nginx.

REMARQUE: Ce didacticiel suppose que vous connaissez Nginx et que vous avez déjà installé Nginx et que vous l’avez configuré sur votre serveur.

Dans la plupart des cas d'utilisation, Nginx sera le serveur faisant face au serveur frontal, écoutant le port 80 (HTTP) ou 443 (HTTPS) pour les demandes entrantes. Etant donné qu'un seul service écoute le port 80 ou 443, votre application devra écouter un autre port, tel que le port 8081. La configuration la plus simple serait la suivante:

server {

  listen 80;

  listen [::]:80;


  server_name myapp.com;

  location / {

      proxy_pass http://localhost:8081/;

  }

}

Cela signifie que toutes les demandes entrantes sur myapp.com seront redirigées sur le port 80 vers le port 8081.

Paramètres avancés

En plus du routage proxy_pass , Il existe plusieurs autres directions que vous pouvez utiliser pour une configuration plus avancée.

proxy_set_header - Cela vous permet de définir l'en-tête à envoyer à l'application d'arrière-plan. Par exemple, voir la configuration suivante:

proxy_set_header        Host            $host;

proxy_set_header        X-Real-IP       $remote_addr;

proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;

Vous pouvez définir l'en-tête du proxy à transmettre à l'application afin qu'elle connaisse l'adresse IP de la demande et l'adresse distante, puis génère le contenu correct pour l'emplacement de la demande.

délai d'attente du proxy - Cela vous permet de définir la valeur du délai d’envoi et de réception des demandes de proxy. Par exemple:

proxy_connect_timeout   90;

proxy_send_timeout      90;

proxy_read_timeout      90;

proxy_buffers - Cela permet à Nginx de suspendre temporairement la réponse du proxy et de l'envoyer uniquement au serveur de requêtes une fois que celui-ci a répondu. Par exemple:

proxy_buffers           32 4k;

Si votre application envoie une grande partie du fichier, vous devrez peut-être le désactiver. proxy_buffers:

proxy_buffering     off;

Sommaire

Comme vous pouvez le constater, Nginx est un bon serveur proxy inverse. La meilleure chose à ce sujet est que sa configuration est simple et facile à utiliser, mais elle vous permet néanmoins de procéder à une mise à niveau pour obtenir des scénarios plus complexes. Pour plus de détails, vous pouvez vérifier La documentation du module proxy Nginx ou Exemples de configuration.

Aller au bouton supérieur