Apache est l'un des serveurs Web les plus fiables et les plus puissants disponibles. Apache est open-source, hautement personnalisable et est livré avec de nombreux modules qui vous permettent d'ajouter des fonctionnalités supplémentaires. Il est connu pour sa puissance et est spécialement conçu pour les sites Web de petite à moyenne taille.
L'utilisation d'Apache en parallèle avec Nginx et FastCGI Cache vous permet de tirer le meilleur parti des deux mondes. Cette configuration améliorera les performances de votre serveur Web en utilisant les points forts des deux applications de serveur Web. Le cache Nginx FastCGI fonctionne en stockant des copies de fichiers dans un cache afin qu'ils soient accessibles plus rapidement.
Dans ce tutoriel, nous allons vous montrer comment configurer le cache Nginx FastCGI avec LAMP Server sur Ubuntu 18.04. Nous allons configurer Apache en tant que serveur principal et Nginx en tant que serveur frontal avec FastCGI Cache.
Prérequis
- Un nouveau VPS Ubuntu 18.04 sur la plate-forme cloud Atlantic.Net
- Un mot de passe root configuré sur votre serveur
Étape 1 - Créer un serveur cloud Atlantic.Net
Tout d'abord, connectez-vous à votre serveur Atlantic.Net Cloud. Créez un nouveau serveur en choisissant Ubuntu 18.04 comme système d'exploitation avec au moins 1 Go de RAM. Connectez-vous à votre serveur cloud via SSH et connectez-vous à l'aide des informations d'identification mises en évidence en haut de la page.
Une fois connecté à votre serveur Ubuntu 18.04, exécutez la commande suivante pour mettre à jour votre système de base avec les derniers packages disponibles.
apt-get update -y
Étape 2 - Installer le serveur LAMP
First, install the Apache web server, PHP, PHP-FPM and other modules with the following command: apt-get install apache2 php php-fpm libapache2-mod-php7.2 libapache2-mod-fcgid -y
Une fois tous les packages installés, vous devrez activer certains modules Apache requis pour qu'Apache puisse fonctionner avec PHP-FPM.
Vous pouvez les activer avec la commande suivante :
a2enmod actions fcgid alias proxy_fcgi
Ensuite, redémarrez le service Apache pour appliquer les modifications.
systemctl restart apache2
Étape 3 – Créer un exemple de site Web
Tout d'abord, créez un répertoire pour votre site Web avec la commande suivante :
mkdir /var/www/html/example.com
Ensuite, créez un exemple de fichier info.php dans le répertoire de votre site Web :
nano /var/www/html/example.com/info.php
Ajoutez les lignes suivantes :
<?php phpinfo(); ?>
Enregistrez et fermez le fichier, puis changez la propriété de votre site Web en utilisateur www-data :
chown -R www-data:www-data /var/www/html/example.com chmod -R 755 /var/www/html/example.com
Une fois que vous avez terminé, vous pouvez passer à l'étape suivante.
Étape 4 - Configurer le serveur Web Apache
nano /etc/apache2/ports.conf
Changez la ligne de "Listen 80" à "Listen 8088":
Listen 8088
Enregistrez et fermez le fichier lorsque vous avez terminé, puis désactivez le fichier d'hôte virtuel par défaut d'Apache avec la commande suivante :
a2dissite 000-default.conf
Ensuite, redémarrez le serveur Web Apache pour mettre en œuvre les modifications.
systemctl restart apache2
Ensuite, créez un nouveau fichier de configuration d'hôte virtuel pour servir votre site Web :
nano /etc/apache2/sites-available/example.com.conf
Ajoutez le contenu suivant :
<VirtualHost 127.0.0.1:8088> ServerName 127.0.0.1 ServerAdmin [email protected] DocumentRoot /var/www/html/example.com DirectoryIndex info.php <FilesMatch \.php$> # 2.4.10+ can proxy to unix socket SetHandler "proxy:unix:/run/php/php7.2-fpm.sock|fcgi://localhost" </FilesMatch> <Directory /var/www/html/> Options FollowSymLinks Includes ExecCGI AllowOverride All Require all granted </Directory> CustomLog /var/log/apache2/access.log combined ErrorLog /var/log/apache2/error.log </VirtualHost>
Enregistrez et fermez le fichier lorsque vous avez terminé, puis activez le fichier de configuration de l'hôte virtuel Apache avec la commande suivante :
a2ensite example.com.conf
Ensuite, redémarrez le service Apache pour appliquer les modifications :
systemctl restart apache2
À ce stade, le serveur Web Apache est configuré et écoute sur localhost sur le port 8088.
Étape 5 - Configurer Nginx en tant que proxy inverse avec le cache FastCGI
Dans cette section, nous allons configurer Nginx en tant que proxy inverse pour le serveur Web Apache et activer FastCGI Cache.
Tout d'abord, installez le serveur Web Nginx avec la commande suivante :
apt-get install nginx -y
Une fois installé, créez un nouveau fichier de configuration d'hôte virtuel Nginx :
nano /etc/nginx/sites-available/example.com.conf
Ajoutez le contenu suivant :
# Enable FastCGI Support proxy_cache_path /etc/nginx/cache levels=1:2 keys_zone=nginxcache:100m max_size=1g inactive=60m use_temp_path=off; fastcgi_cache_key "$scheme$request_method$host$request_uri"; add_header X-Cache $upstream_cache_status; server { listen 80; server_name example.com; access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; location = /favicon.ico { access_log off; log_not_found off; } set $skip_cache 0; #Disable caching for login session, user cookie, POST request, query string, site map and feeds if ($request_method = POST) { set $skip_cache 1; } if ($query_string != "") { set $skip_cache 1; } # Enable caching for your website. location / { proxy_pass http://127.0.0.1:8088; proxy_set_header Host $host; proxy_buffering on; proxy_cache nginxcache; proxy_cache_use_stale error timeout invalid_header updating http_500 http_502 http_503 http_504; proxy_cache_valid 200 301 302 60m; proxy_cache_min_uses 1; proxy_cache_lock on; } }
Enregistrez et fermez le fichier lorsque vous avez terminé, puis activez le fichier d'hôte virtuel Nginx avec la commande suivante :
ln -s /etc/nginx/sites-available/example.com.conf /etc/nginx/sites-enabled/
Ensuite, redémarrez le service Nginx pour appliquer les modifications :
systemctl restart nginx
Étape 6 - Tester le cache Nginx FastCGI
À ce stade, Nginx est installé et configuré en tant que proxy inverse pour Apache avec prise en charge de FastCGI Cache. Il est temps de vérifier si la mise en cache fonctionne ou non.
Ouvrez votre navigateur Web et accédez à votre serveur Web Nginx à l'aide de l'URL http://example.com et rechargez la page plusieurs fois.
Ensuite, ouvrez votre terminal et exécutez la commande suivante pour récupérer l'en-tête de réponse http.
curl -I http://example.com
Vous devriez obtenir le résultat suivant :
HTTP/1.1 200 OK Server: nginx/1.14.0 (Ubuntu) Date: Fri, 24 Apr 2020 17:01:42 GMT Content-Type: text/html; charset=UTF-8 Connection: keep-alive Vary: Accept-Encoding X-Cache: HIT
À partir de la sortie ci-dessus, X-Cache :HIT indique que la réponse a été servie à partir du cache.
Conclusion
Dans le guide ci-dessus, nous avons installé et configuré le serveur Web Apache en tant que serveur principal et Nginx en tant que serveur frontal avec mise en cache FastCGI. Espérons que cette configuration améliorera considérablement les performances de votre serveur Web. Commencez dès aujourd'hui avec la mise en cache FastCGI sur votre serveur LAMP avec l'hébergement VPS d'Atlantic.Net !