23 09 | 2011

Coupler Nginx à Apache

Rédigé par Matthias

Classé dans : Serveur, Ubuntu, Debian

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 80
en
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

Mots clés : nginx, apache, installation

Écrire un commentaire

Capcha
Entrez le code de l'image : 

RECHERCHE



Catégories

Archives