Nginx est un serveur Web léger qui s'est avéré servir des fichiers statiques plus rapidement qu'Apache. Ce didacticiel vous expliquera comment installer Nginx en tant que proxy inverse sur le serveur Web Apache.
Exigences
Vous avez installé Apache sur votre serveur. Apache exécute déjà un site sur le port 80.
Changer le port d'écoute Apache
Modifier /etc/apache2/ports.confpour que Apache écoute le port 8080 au lieu du port par défaut 80.
Trouvez la ligne suivante:
NameVirtualHost *:80
Listen 80
Changez-le en:
NameVirtualHost *:8080
Listen 8080
N'oubliez pas votre port d'écoute vhost existant dans /etc/apache2/sites-enabled/*
Changement:
<VirtualHost *:80>
À:
<VirtualHost *:8080>
Désactiver les modules Unuse dans Apache
Comme les requêtes HTTP sont désormais gérées par Nginx, nous pouvons désactiver KeepAlive dans Apache. Modifier /etc/apache2/apache2.confet changer:
KeepAlive Off
Exécutez également les commandes suivantes pour désactiver les modules inutilisés.
a2dismod deflate
a2dismod cgi
a2dismod autoindex
a2dismod negotiation
a2dismod ssl
Installer le module avancé
Installez mod_rpaf dans Apache pour transférer l'adresse IP du visiteur vers Apache. Sinon, vos scripts liront les valeurs REMOTE_ADDR comme IP du serveur.
apt-get install libapache2-mod-rpaf
Arrêter le service Apache
/etc/init.d/apache2 restart
Configurer Nginx
Installez Nginx.
apt-get install nginx
Supprimez le vhost par défaut pour éviter les conflits.
rm -rf /etc/nginx/sites-enabled/*
Créez un nouveau vhost par défaut:
cat >/etc/nginx/sites-available/000-default <<EOF
server {
access_log off;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_pass http://127.0.0.1:8080;
}
}
EOF
ln -s /etc/nginx/sites-available/000-default /etc/nginx/sites-enabled/000-default
Créez un vhost pour le site Web existant pour transmettre la demande à Apache:
cat >/etc/nginx/sites-available/domain.com <<EOF
server {
server_name www.domain.com domain.com;
root /var/www/domain.com/;
access_log off;
# Static contents
location ~* ^.+.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js)$ {
expires max;
}
# Dynamic content, forward to Apache
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_pass http://127.0.0.1:8080;
}
}
EOF
ln -s /etc/nginx/sites-available/domain.com /etc/nginx/sites-enabled/domain.com
Redémarrez Nginx et c'est fait.
/etc/init.d/nginx restart