Qu'est-ce qu'un proxy inverse
En bref, un serveur proxy inverse agit comme un service intermédiaire entre le client demandant une ressource telle qu'une page HTTP et un ou plusieurs serveurs. L'utilisation du proxy inverse offre de multiples avantages tels que l'amélioration des performances, l'équilibrage de charge, la maintenance transparente des serveurs derrière le serveur proxy inverse, une sécurité améliorée et bien plus encore.
Scénario de base
Dans cette section, nous allons configurer un proxy inverse de base à l'aide du serveur Web Nginx sur Debian Linux. Nous utiliserons deux serveurs distincts server1
et server2
. Le serveur1 exécute Debian Linux avec un proxy inverse Nginx et une adresse IP 10.1.1.251
. Serveur2 exécuter le site Web de base en utilisant le serveur Web Apache2 sur l'adresse IP 10.1.1.252
. Nous supposons que Server2 est opérationnel pour servir un contenu sur le port 80 :
$ lynx -dump http://10.1.1.252 Hello this is apache2 sitting on host 10.1.1.252
En conséquence, notre objectif principal sera dédié au serveur1 et à la configuration du proxy inverse Nginx pour agir en tant qu'intermédiaire entre le client et le serveur2.
Configuration minimale du proxy inverse
Cette section montrera une configuration de proxy inverse minimaliste qui peut être améliorée ultérieurement pour s'adapter à votre environnement. Commençons par nginx
mise en place :
# apt-get install nginx
Ensuite, nous désactivons un hôte virtuel par défaut :
# unlink /etc/nginx/sites-enabled/default
Ensuite, créez un nouveau fichier dans /etc/nginx/sites-available
répertoire pour contenir votre configuration de proxy inverse, par exemple reverse-proxy
avec un contenu suivant :
server { listen 80; location / { proxy_pass http://10.1.1.252; } }
La configuration de proxy inverse ci-dessus est absolument minimaliste et explicite. La fonctionnalité principale est le proxy_pass
directive qui instruit nginx
pour proxy toutes les requêtes communiquant sur le socket 10.1.1.251:80
à la prise distante 10.1.1.252:80
.Assurez-vous que votre nginx
la configuration ne contient pas d'erreurs et redémarrez nginx
.
# nginx -t nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful # service nginx restart
À ce stade, vous devriez pouvoir interroger votre nouveau proxy inverse sur l'adresse IP 10.1.1.251
et atteindre un contenu de apache2
fonctionnant sur l'adresse IP 10.1.1.251
:
$ lynx -dump http://10.1.1.251 Hello this is apache2 sitting on host 10.1.1.252
Une fois que la configuration de proxy inverse de base ci-dessus fonctionne nginx
contient un certain nombre de directives supplémentaires pour améliorer votre configuration.