Varnish est un serveur proxy axé sur la mise en cache HTTP. Il est conçu comme un accélérateur HTTP et peut agir comme proxy inverse pour votre serveur Web Apache ou Nginx. Le vernis a été utilisé pour des sites Web très médiatisés et à fort trafic, notamment Wikipedia, The Guardian et le New York Times.
Dans ce tutoriel, je vais vous montrer comment installer et configurer l'accélérateur HTTP de vernis en tant que proxy inverse pour le serveur Web Nginx. Le vrai serveur Web Nginx fonctionnera sous le port HTTP non standard 8080. Et Varnish fonctionnera en tant que proxy inverse sur le port HTTP 80. Pour ce guide, nous utiliserons le serveur Ubuntu 16.04.
Ce que nous allons faire
- Installer Nginx sur Ubuntu 16.04
- Configurer Nginx sur le port 8080
- Installer Varnish sur Ubuntu 16.04
- Configurer Varnish en tant que proxy inverse pour Nginx
- Configurer le pare-feu UFW
- Test
Prérequis
- Ubuntu 16.04
- Privilèges racine
Étape 1 - Installer Nginx sur Ubuntu 16.04
La première étape que nous devons faire pour ce tutoriel est d'installer Nginx sur le système Ubuntu 16.04. Dans cette étape, nous allons installer Nginx (il est disponible dans le référentiel officiel Ubuntu), puis démarrer le service, puis lui permettre de se lancer à chaque démarrage du système.
Installez Nginx à partir du référentiel Ubuntu à l'aide de la commande apt.
sudo apt install nginx -y
Une fois l'installation terminée, démarrez Nginx et activez-le pour qu'il se lance à chaque démarrage du système à l'aide des commandes systemctl ci-dessous.
systemctl start nginx
systemctl enable nginx
Le serveur Web Nginx s'exécute sur le port HTTP par défaut - vérifiez-le à l'aide de netstat et assurez-vous que le port HTTP est utilisé par Nginx.
netstat -plntu
Étape 2 - Configurer Nginx sur le port 8080
Dans cette étape, nous allons configurer nginx pour qu'il s'exécute sous le port HTTP non standard 8080. À cette fin, nous devons modifier les fichiers de l'hôte virtuel sous le répertoire "sites-available".
Accédez au répertoire de configuration de Nginx et modifiez le fichier d'hôte virtuel "par défaut" à l'aide de vim.
cd /etc/nginx/
vim sites-available/default
Remplacez la valeur de la ligne "écouter" par 8080.
listen 8080 default_server;
listen [::]:8080 default_server;
Enregistrez et quittez.
Testez maintenant la configuration Nginx et assurez-vous qu'il n'y a pas d'erreur. Redémarrez ensuite le service.
nginx -t
systemctl restart nginx
Maintenant, testez à nouveau nginx à l'aide de netstat et assurez-vous qu'il s'exécute sur le port HTTP non standard 8080.
netstat -plntu
Le serveur Web Nginx a été installé et fonctionne maintenant sur le port 8080.
Étape 3 - Installer Varnish sur Ubuntu 16.04
Nous devons maintenant installer Varnish sur le système. Nous pouvons installer la dernière version de l'outil à partir de la source. Et pour ce guide, nous installerons le vernis à partir du référentiel Ubuntu - Varnish v4.
Installez le vernis à l'aide de la commande apt ci-dessous.
sudo apt install varnish -y
Maintenant, démarrez vernis et activez-le pour qu'il se lance au démarrage du système à l'aide des commandes systemctl ci-dessous.
systemctl start varnish
systemctl enable varnish
Par défaut, vernis utilisera le port 6081 pour l'accès public et le port 6082 pour l'interface Web d'administration de vernis. Vérifiez-le à l'aide de la commande netstat et assurez-vous que ces ports figurent dans la liste.
netstat -plntu
L'accélérateur HTTP Varnish a été installé.
Étape 4 - Configurer Varnish en tant que proxy inverse pour Nginx
Dans ce didacticiel, nous utiliserons Varnish comme proxy inverse pour le serveur Web Nginx. Varnish fonctionnera sur le port HTTP 80 et le serveur Web Nginx sur le port HTTP 8080 (c'est terminé).
Dans cette étape, nous allons configurer Varnish pour Nginx, définir le serveur principal, puis modifier le vernis pour qu'il s'exécute sous le port HTTP 80.
Allez maintenant dans le répertoire de configuration de vernis et éditez le fichier 'default.vcl'.
cd /etc/varnish
vim default.vcl
Sur la ligne backend, définissez la configuration comme ci-dessous.
backend default {
.host = "127.0.0.1";
.port = "8080";
}
Enregistrez et quittez.
Remarque :
- .hôte =Adresse du serveur Web principal.
- .port =Le serveur Web sauvegardé en cours d'exécution.
La configuration du backend est terminée.
Ensuite, nous devons configurer Varnish pour qu'il s'exécute sous le port HTTP 80. Allez dans le répertoire '/etc/default' et modifiez le fichier de configuration de vernis 'varnish'.
cd /etc/default/
vim varnish
Sur la ligne 'DAEMON_OPTS', changez le port par défaut 6081 en port HTTP 80.
DAEMON_OPTS="-a :80 \
-T localhost:6082 \
-f /etc/varnish/default.vcl \
-S /etc/varnish/secret \
-s malloc,256m"
Enregistrez et quittez.
Modifiez maintenant le fichier de service de vernis dans le répertoire '/lib/systemd/system'. Accédez au répertoire système systemd et modifiez le fichier vernis.service.
cd /lib/systemd/system
vim varnish.service
Sur la ligne 'ExecStart', changez le port de vernis 6081 en port HTTP 80.
ExecStart=/usr/sbin/varnishd -j unix,user=vcache -F -a :80 -T localhost:6082 -f /etc/varnish/default.vcl -S /etc/varnish/secret -s malloc,256m
Enregistrez et quittez.
Rechargez la configuration systemd et redémarrez le vernis.
systemctl daemon-reload
systemctl restart varnish
Une fois la configuration terminée, vérifiez Varnish à l'aide de la commande netstat ci-dessous.
netstat -plntu
Assurez-vous que Varnish s'exécute sur le port HTTP 80, comme indiqué ci-dessous.
La configuration de Varnish en tant que proxy inverse pour Nginx est terminée.
Étape 5 - Configurer le pare-feu UFW
Le système Ubuntu est livré avec un pare-feu par défaut lisible par l'homme nommé "UFW". Si vous n'avez pas le package, installez-les à l'aide de la commande apt ci-dessous.
sudo apt install ufw
Dans cette étape, nous allons activer le pare-feu et ouvrir de nouveaux ports pour SSH, HTTP et HTTPS.
Exécutez les commandes ufw ci-dessous.
ufw allow ssh
ufw allow http
ufw allow https
Activez maintenant le pare-feu et permettez-lui de se lancer à chaque fois au démarrage.
ufw enable
Tapez 'y' et appuyez sur Entrée pour confirmer.
Le pare-feu UFW est activé et les ports HTTP et HTTPS sont désormais accessibles depuis le réseau extérieur.
Étape 6 - Tester
- Test avec cURL
Tester le vernis à l'aide de la commande curl, afin que nous puissions voir les en-têtes HTTP du serveur.
curl -I hakase-labs.co
Et vous obtiendrez le résultat de l'en-tête HTTP "Via :1.1 vernis-v4" comme indiqué ci-dessous.
- Test à l'aide d'un navigateur Web
Ouvrez votre navigateur Web et saisissez l'URL ou l'adresse suivante du serveur. Le mien est : http://hakase-labs.co
Assurez-vous d'obtenir la page par défaut de Nginx comme ci-dessous.
- Test du journal de vernis
Varnish fournit certaines commandes pour gérer et afficher les journaux. Nous utiliserons 'varnishncsa' pour obtenir le journal d'accès au vernis.
varnishncsa
Et vous obtiendrez le résultat comme indiqué ci-dessous.
L'installation et la configuration de Varnish en tant que proxy inverse pour le serveur Web Nginx sont terminées.