Apache est le serveur Web le plus populaire, capable de fonctionner sur un grand nombre de systèmes d'exploitation, y compris UNIX/Linux, Microsoft Windows et OpenVMS.
NGINX est un serveur web performant utilisé notamment pour les fichiers statiques et comme reverse proxy, mais grâce à sa polyvalence il peut être utilisé dans tout type de situation.
Dans ce tutoriel, nous allons découvrir comment utiliser les points forts des deux serveurs Web en les faisant coopérer en parfaite harmonie. NGINX sera utilisé comme serveur Web frontal qui traitera les demandes des clients et les enverra à Apache, qui sera notre serveur Web principal et renverra la réponse demandée. Cette procédure permet d'obtenir divers avantages allant de la performance à la sécurité.
Tout d'abord, connectez-vous à votre serveur via une connexion SSH. Si vous ne l'avez pas encore fait, il est recommandé de suivre notre guide pour vous connecter en toute sécurité avec SSH. Dans le cas d'un serveur local, passez à l'étape suivante et ouvrez le terminal de votre serveur.
Installation et configuration d'Apache
Mettez à jour les dépôts de la distribution Ubuntu Linux, pour vous assurer de télécharger la dernière version d'Apache :
$ sudo apt-get update
Ensuite, lancez l'installation :
$ sudo apt install apache2
À ce stade, l'installation d'Apache est terminée et il est possible de poursuivre sa configuration.
Changez le port utilisé par défaut par Apache en 8080. Pour cela, ouvrez le fichier de configuration comme indiqué :
$ sudo nano /etc/apache2/ports.conf
Trouvez la ligne Listen 80 et changez-la en Listen 8080, puis enregistrez et fermez le fichier.
Redémarrez le service Apache :
$ sudo systemctl restart apache2
Pour vérifier le changement de port Apache rendez-vous sur http://
Installation et configuration de NGINX
Continuez en lançant l'installation de NGINX :
$ sudo apt-get install nginx
Une fois l'installation terminée, ouvrez le fichier de configuration NGINX comme indiqué :
$ sudo nano /etc/nginx/nginx.conf
Ensuite, modifiez ou ajoutez le bloc serveur comme indiqué ici pour utiliser NGINX comme serveur proxy Apache :
server {
listen 80;
root /var/www/html;
index index.php index.html index.htm;
server_name SERVER_IP;
location / {
proxy_pass http://localhost:8090;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
Enregistrer et fermer le fichier.
Ensuite, redémarrez le service NGINX :
$ sudo systemctl restart nginx
Configuration du pare-feu
En cas de pare-feu sur votre système, configurez-le pour autoriser le trafic HTTP et le trafic HTTPS vers votre machine.
Lorsque vous utilisez le pare-feu UFW, vous aurez des profils préinstallés pour NGINX. Voyons donc comment les activer.
Pour vérifier les profils disponibles installés dans le pare-feu UFW, exécutez cette commande :
$ sudo ufw app list
Une liste similaire à celle-ci s'affichera à l'écran :
Available applications:
Dovecot IMAP
Dovecot POP3
Dovecot Secure IMAP
Dovecot Secure POP3
Nginx Full
Nginx HTTP
Nginx HTTPS
OpenSSH
Postfix
Postfix SMTPS
Postfix Submission
Pour autoriser le trafic HTTP (Port 80) et HTTPS (Port 443), utilisez le profil "Nginx Full".
Il est possible de vérifier les informations de votre profil comme ceci :
$ sudo ufw app info "Nginx Full"
La description du profil apparaîtra à l'écran :
Profile: Nginx Full
Title: Web Server (Nginx, HTTP + HTTPS)
Description: Small, but very powerful and efficient web server
Ports:
80,443/tcp
Après avoir vérifié le profil, il sera possible de l'activer :
$ sudo ufw allow in "Nginx Full"
Enfin, procédez au test des deux serveurs Web en visitant l'adresse http://
Si la procédure a été correctement effectuée, votre site Web s'affichera avec l'écran Apache par défaut. Cela signifie que le proxy inverse fonctionne et a été configuré correctement.