[Tutoriels] Configuration de Nginx en reverse proxy
Bastien Louche | 31/03/2010 | 17:31 |Cet article a été publié il y a plus de 6 mois. Les informations qu'il contient ne sont peut-être plus à jour.
Dans le but d’optimiser un serveur web qui tourne sous Apache, on va configurer Nginx en reverse proxy, c’est d’ailleurs la configuration mise en place sur le serveur de www.bastien-louche.fr qui fonctionne très bien depuis début Janvier. Je vous passe les détails sur la définition d’un reverse proxy ou sur Nginx, Wikipédia fait cela beaucoup mieux que moi !
Dans notre cas vous possédez déjà Apache, PHP, MySQL sur votre serveur et vous souhaitez seulement ajouter Nginx en guise de reverse proxy.
On installe Nginx via une simple commande usuelle :
apt-get install nginx
On ajoute le paquet suivant pour permettre à Apache de bien loguer les IP des connexions :
apt-get install libapache2-mod-rpaf
On va ensuite pouvoir créer le fichier de configuration de Nginx pour l’utiliser en mode reverse proxy :
nano /etc/nginx/conf.d/proxy.conf
On y écris les lignes suivantes :
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 10m;
client_body_buffer_size 128k;
client_header_buffer_size 64k;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 16k;
proxy_buffers 32 16k;
proxy_busy_buffers_size 64k;
On peut alors configurer le fichier /etc/nginx/sites-available/default pour activer le mode reverse proxy, dans notre configuration Nginx écoutera sur le port 80 et Apache sur le port 8080 (Les lignes à ajouter sont en gras) :
server {
listen 80;
server_name localhost;
access_log /var/log/nginx/localhost.access.log;
location / {
proxy_pass http://127.0.0.1:8080/;
}
}
On modifie ensuite le fichier de configuration du port d’écoute de Apache :
nano /etc/apache2/ports.conf
NameVirtualHost *
Listen 127.0.0.1:8080
On peut maintenant redémarrer les services :
/etc/init.d/apache2 start
/etc/init.d/nginx start
L’installation est terminée et opérationnelle comme on peut le constater grâce au module Domain Details pour Firefox :
Pour rendre votre Nginx moins verbeux vous pouvez ajouter une ligne dans le fichier /etc/nginx/nginx.conf :
http {
[…]
server_tokens off;
}