Comme vous le savez, Apache et Nginx sont tous deux des serveurs Web gratuits, open source et puissants dans le monde entier. Apache est connu pour sa puissance tandis que le Nginx est connu pour sa rapidité. Les deux ont des inconvénients et des avantages. Nginx utilise PHP-FPM pour charger les fichiers PHP tandis qu'Apache charge PHP seul. Apache est utilisé pour la partie dynamique du site Web tandis que Nginx sert des fichiers statiques tels que des fichiers graphiques, CSS et js.
C'est une bonne idée d'utiliser les deux sur un seul serveur et de tirer parti des deux. Dans ce didacticiel, nous allons vous montrer comment utiliser Nginx en tant que serveur Web et proxy inverse pour le serveur Web Apache sur CentOS 8.
Prérequis
- Un serveur exécutant CentOS 8.
- Un nom de domaine pointé vers l'IP de votre serveur.
- Un mot de passe root est configuré sur le serveur.
Installer Apache et PHP
Tout d'abord, vous devrez installer le serveur Web Apache et PHP sur votre serveur. Vous pouvez l'installer à l'aide de la commande suivante :
dnf install httpd php php-cli -y
Une fois l'installation terminée, démarrez le service Apache et activez-le au redémarrage du système avec la commande suivante :
systemctl start httpd
systemctl enable httpd
Configurer le serveur Web Apache
Par défaut, le serveur Web Apache écoute sur le port 80. Vous devrez donc configurer le serveur Web Apache pour qu'il écoute sur le port 8080. Vous pouvez le faire en modifiant le fichier de configuration principal d'Apache :
nano /etc/httpd/conf/httpd.conf
Modifiez la publication de 80 à 8080 comme indiqué ci-dessous :
Listen 8080
Enregistrez et fermez le fichier puis redémarrez le service Apache pour appliquer les modifications :
systemctl restart httpd
Ensuite, vérifiez le port d'écoute d'Apache avec la commande suivante :
ss -antpl | grep httpd
Vous devriez obtenir le résultat suivant :
LISTEN 0 128 *:8080 *:* users:(("httpd",pid=1693,fd=4),("httpd",pid=1692,fd=4),("httpd",pid=1691,fd=4),("httpd",pid=1688,fd=4))
Ensuite, créez un fichier info.php dans le répertoire racine Web d'Apache :
nano /var/www/html/info.php
Ajoutez la ligne suivante :
<?php phpinfo(); ?>
Enregistrez et fermez le fichier lorsque vous avez terminé.
Ensuite, ouvrez votre navigateur Web et accédez à l'URL http://your-server-ip:8080/info.php . Vous devriez voir la page suivante :
Installer le serveur Web Nginx
Ensuite, vous devrez installer le package Nginx sur votre serveur. Vous pouvez l'installer avec la commande suivante :
dnf install nginx -y
Une fois le Nginx installé, démarrez le service Nginx et activez-le pour qu'il démarre au redémarrage du système avec la commande suivante :
systemctl start nginx
systemctl enable nginx
Configurer Nginx en tant que proxy inverse pour Apache
Maintenant, vous devrez configurer le Nginx en tant que proxy inverse pour transférer toutes les requêtes arrivant sur le port 80 au serveur Web Apache qui écoute sur le port 8080.
Tout d'abord, créez un nouveau fichier de configuration d'hôte virtuel Nginx avec la commande suivante :
nano /etc/nginx/conf.d/proxy.conf
Ajoutez les lignes suivantes :
server { listen 80; server_name test.example.com; location ~ \.php$ { proxy_pass http://your-server-ip:8080; proxy_set_header Host $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; } }
Enregistrez et fermez le fichier lorsque vous avez terminé. Ensuite, redémarrez le serveur Web Nginx pour appliquer les modifications :
systemctl restart nginx
Maintenant, ouvrez votre navigateur Web et accédez à l'URL http://test.example.com/info.php . Vous devriez voir la page suivante :
Comme vous pouvez le voir, PHP est servi par un serveur Web Nginx.
Conclusion
Dans le guide ci-dessus, vous avez appris à configurer Nginx en tant que serveur Web et proxy inverse pour Apache. J'espère que cela vous aidera à augmenter les performances de votre site Web.