GNU/Linux >> Tutoriels Linux >  >> Linux

Comment configurer le cache Nginx sur le serveur LEMP

Nginx est un serveur Web gratuit et open source, sans parler de l'un des serveurs Web les plus utilisés au monde. Il peut être utilisé comme proxy inverse, proxy de messagerie, équilibreur de charge et serveur de mise en cache. Nginx est hautement évolutif et spécialement conçu pour des performances et une stabilité maximales. Il utilise une architecture pilotée par les événements et gère chaque requête entrante dans un seul thread.

Nginx est livré avec un module FastCGI qui peut être utilisé pour mettre en cache le contenu dynamique servi à partir du backend PHP. Vous n'avez pas besoin de configurer d'autres solutions de mise en cache telles que Redis, Varnish, Memcache après avoir configuré Nginx avec le cache FastCGI.

Dans ce tutoriel, nous allons vous montrer comment configurer le cache Nginx FastCGI avec LEMP sur Ubuntu 18.04.

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 LEMP

Commençons par installer LEMP (Nginx, PHP, PHP-FPM) sur votre serveur.

apt-get install nginx php php-cli php-fpm -y

La commande ci-dessus installera également le serveur Web Apache sur votre système, vous devrez donc arrêter et désactiver le service Apache.

systemctl stop apache2
systemctl disable apache2

Ensuite, démarrez le service Nginx et PHP-FPM avec la commande suivante :

systemctl start nginx
systemctl start php7.2-fpm

Une fois que vous avez terminé, vous pouvez passer à l'étape suivante.

É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. Ensuite, changez la propriété de votre site Web en www-data user :

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 Nginx avec le cache FastCGI

Ensuite, vous devrez créer un nouveau fichier de configuration d'hôte virtuel Nginx pour servir votre site Web et activer le cache FastCGI.

nano /etc/nginx/sites-available/example.com.conf

Ajoutez les lignes suivantes :

# Enable FastCGI Support
fastcgi_cache_path /etc/nginx/cache levels=1:2 keys_zone=nginxcache:150m 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;
root /var/www/html/example.com;
client_max_body_size 256M;
index info.php;
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; }

#Disable caching for login session, user cookie, POST request, query string, site map and feeds
set $skip_cache 0;
if ($request_method = POST) {
set $skip_cache 1;
}
if ($query_string != "") {
set $skip_cache 1;
}

# Enable caching for your website.
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
fastcgi_index info.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_intercept_errors off;
fastcgi_buffer_size 16k;
fastcgi_buffers 4 16k;
fastcgi_connect_timeout 600;
fastcgi_send_timeout 600;
fastcgi_read_timeout 600;
fastcgi_cache nginxcache;
fastcgi_cache_valid 200 301 302 60m;
fastcgi_cache_use_stale error timeout updating invalid_header http_500 http_503;
fastcgi_cache_min_uses 1;
fastcgi_cache_lock on;

}
}

Enregistrez et fermez le fichier lorsque vous avez terminé, puis vérifiez Nginx pour toute erreur de syntaxe avec la commande suivante :

nginx -t

Vous devriez obtenir le résultat suivant :

Ensuite, 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/

Enfin, rechargez le service Nginx pour appliquer les modifications :

systemctl restart nginx

Une brève explication de chaque directive dans le fichier de configuration ci-dessus est présentée ci-dessous :

  • fastcgi_cache_path crée un cache FastCGI et spécifie l'emplacement du cache, le nom de la zone mémoire (nginxcache) avec la taille (150M), max_size (1G) et définit la clé pour la recherche du cache.
  • add_header est utilisé pour valider si la requête a été servie à partir du cache FastCGI ou non.
  • fastcgi spécifie le chemin du socket php-fpm.
  • fastcgi_cache active la mise en cache, que nous avons spécifiée à l'aide de la zone mémoire dans la directive fastcgi_cache_path.
  • fastcgi_cache_valid définit le temps de cache avec le code d'état 200, 301, 302 sera mis en cache pendant 60 minutes.
  • fastcgi_cache_lock n'autorise que la première requête via le serveur PHP-FPM en amont.

Étape 5 - Tester le cache Nginx FastCGI

À ce stade, Nginx est installé et configuré avec la prise en charge de FastCGI Cache. Il est temps de vérifier si la mise en cache fonctionne ou non.

Ouvrez votre navigateur Web, 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 16:07:24 GMT
Content-Type: text/html; charset=UTF-8
Connection: keep-alive
X-Cache: HIT

À partir de la sortie ci-dessus, X-Cache :HIT indique que la réponse a été servie à partir du cache.

Conclusion

Toutes nos félicitations! Vous avez configuré avec succès Nginx avec la prise en charge de FastCGI Cache. Après avoir activé la mise en cache, vous devriez remarquer une énorme amélioration des performances car les pages sont chargées sans avoir à être rendues par PHP. Essayez FastCGI Cache sur Nginx dès aujourd'hui avec le service d'hébergement VPS d'Atlantic.Net.


Linux
  1. Comment rediriger HTTP vers HTTPS dans Nginx

  2. Comment configurer un serveur LEMP sur Debian 10 Buster

  3. Comment configurer les blocs de serveur Nginx dans Ubuntu 18.04 LTS

  4. Comment installer LEMP sur Ubuntu 16.04

  5. Comment configurer le serveur NTP dans CentOS ?

Comment configurer NGINX sur un serveur CentOS 7

Comment configurer HAProxy sur CentOS 8

Comment configurer le cache Nginx sur un serveur LAMP

Comment installer la pile LEMP sur Rocky Linux 8

Comment installer le serveur LEMP sur Oracle Linux 8

Comment configurer un serveur NGINX RTMP pour le streaming