Dans l'objectif de mener à bien un futur projet, dont mon serveur auto-hébergé sera la pièce maîtresse, je voulais optimiser les accès au serveur Web. J'ai, pour des raisons de facilité et de temps de mise en place, décider de coupler Nginx à Apache.
L'installation de Nginx
Je me suis basé, au moment de l'écriture de cet article, sur l'installation depuis les dépôts Ubuntu.
aptitude install nginx
Configuration
J'utilise une configuration Debian/Unbuntu
Apache
vi /etc/apache2/ports.conf
Modifier
Listen 80en
Listen 8080
Eventuellement, modifiez les fichiers des virtualhosts si le port 80 est préciser dedans.
Nginx
Création du fichier proxy.conf
vi /etc/nginx/conf.d/proxy.conf
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; 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;
Dans le fichier nginx.conf, ajouter la ligne suivante si elle n'est pas présente
include /etc/nginx/conf.d/*.conf;
Modification du fichier default
vi /etc/nginx/sites-available/default
Exemple de configuration
server { listen 80; server_name www.votre_domain.com; server_name_in_redirect on; # Dydamic Content forward to Apache location / { proxy_pass http://127.0.0.1:8080; } # Pour faire reference a des sous repertoire Apache, dans mon cas, un Alias apache location /sous_repertoire/ { proxy_pass http://127.0.0.1:8080/sous_repertoire/; proxy_redirect default ; } }
Reverse proxy
Pour permettre à Nginx d'envoyer l'ip du visiteur et non l'ip du serveur, il suffit d'installer le package libapache2-mod-rpaf. Dans mon cas, ca a fonctionné directement.
aptitude install libapache2-mod-rpaf
Sans modifier la configuration, le module a fonctionné correctement.
On relance le tout et il voilà tout devrait fonctionner.
/etc/init.d/nginx restart /etc/init.d/apache2 restart
Pour la part, j'ai observé une légère baisse de la consommation mémoire. Mais surtout, mon serveur est capable de tenir une plus grande charge.
Avec Apache

Avec Nginx
