Comment accélérer Apache avec le cache HTTP Varnish sur Ubuntu 18.04 LTS
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 un 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, nous allons vous montrer comment installer et configurer l’accélérateur HTTP Varnish en tant que proxy inverse pour le serveur Web Apache. Le vrai serveur web Apache s’exécutera sous un port HTTP non standard (s’exécutant sur le port 8080). Et Varnish s’exécutera en tant que proxy inverse sur le port HTTP 80. Pour ce guide, nous utiliserons le serveur Ubuntu 18.04 LTS.
Ce que nous ferons
- Installer le serveur Web Apache
- Changer le port par défaut d’Apache
- Installer Varnish
- Configurer Varnish
- Tester la configuration
Prérequis
- Ubuntu 18.04 LTS
- Privilèges root
Étape 1 – Installez le serveur Web Apache
Pour démarrer, installez le serveur Web Apache. Par défaut, il est disponible dans le référentiel Ubuntu.
Mettez à jour le référentiel Ubuntu, puis installez Apache à l’aide de la commande apt.
apt update
apt install -y apache2
Une fois l’installation terminée, démarrez le service Apache et activez-le à s’exécuter automatiquement au démarrage du système à l’aide des commandes systemctl suivantes.
systemctl start apache2
systemctl enable apache2
Le serveur web Apache a été installé.
Ensuite, pour permettre à tout le monde d’accéder au serveur Web, nous devons autoriser HTTP et HTTPS sur notre règle de pare-feu. Par défaut, Ubuntu est livré avec un package de pare-feu nommé UFW.
Ouvrez de nouveaux ports SSH, HTTP et HTTPS à l’aide des commandes UFW suivantes.
ufw allow ssh
ufw allow http
ufw allow https
Démarrez maintenant le service de pare-feu et permettez-lui de se lancer automatiquement au démarrage du système.
ufw enable
Tapez ‘y’ et appuyez sur Entrée pour confirmer.
De nouveaux ports pour HTTP, HTTPS et SSH ont été ouverts et sont accessibles depuis l’extérieur du réseau.
Si vous souhaitez tester le serveur web Apache, vous pouvez utiliser la commande netstat et vous assurer qu’apache s’exécute sous le port 80.
netstat -plntu
Ou vous pouvez utiliser la commande curl suivante.
curl -I hakase-labs.co
Vous devriez obtenir le résultat comme indiqué ci-dessous.
Étape 2 – Changer le port par défaut d’Apache
Dans ce tutoriel, nous utiliserons Apache comme serveur principal, et il ne s’exécutera pas sous le port HTTP standard 80. Le serveur web Apache s’exécutera sur le port 8080 en tant que backend, et le port HTTP standard 80 sera utilisé par ‘Varnish’.
Pour changer le port apache par défaut, nous devons modifier les ports de la configuration apache.conf’ et toute la configuration de l’hôte virtuel sous le répertoire ‘sites-available’.
Accédez au répertoire de configuration d’Apache.
cd /etc/apache2
Remplacez le port ’80’ par ‘8080’ dans les ports de la configuration Apache’.conf’ et tous les fichiers d’hôtes virtuels sous le répertoire ‘sites-available’. Nous pouvons le faire en exécutant les commandes sed suivantes.
sed -i -e 's/80/8080/g' ports.conf
sed -i -e 's/80/8080/g' sites-available/*
Ensuite, testez la configuration d’Apache et assurez-vous qu’il n’y a pas d’erreur, puis redémarrez le service Apache.
apachectl configtest
systemctl restart apache2
Maintenant, Apache s’exécute sous le port HTTP ‘8080’, vérifiez-le à l’aide de la commande ‘netstat’ comme indiqué ci-dessous.
netstat -plntu
Assurez-vous d’avoir le résultat ci-dessous.
Ainsi, vous pouvez voir que le serveur Web Apache fonctionne sur le port ‘8080’.
Étape 3 – Installer l’accélérateur HTTP Varnish
Dans cette étape, nous installerons Varnish à partir du référentiel Ubuntu. Et pour ce guide, nous utiliserons Varnish 5.2.
Installez varnish à l’aide de la commande apt suivante.
apt install -y varnish
Une fois l’installation terminée, démarrez Varnish et permettez-lui de se lancer automatiquement au démarrage du système.
systemctl start varnish
systemctl enable varnish
Varnish a été installé sur le système Ubuntu 18.04.
Par défaut, il s’exécute sous les ports ‘6081’ pour l’adresse publique et ‘6082’ pour l’adresse localhost. Vérifiez-le à l’aide de la commande netstat ci-dessous.
netstat -plntu
Et vous obtiendrez le port de vernis par défaut.
Étape 4 – Configurer Varnish en tant que proxy inverse pour Apache
Dans cette étape, nous allons configurer varnish sur le devant du serveur Web Apache. Varnish s’exécutera sous le port http 80, et chaque demande des clients sera traitée par celui-ci, avant d’être envoyée au serveur web Apache fonctionnant sur le port 8080.
– Configuration du backend
Allez dans le répertoire de configuration ‘varnish’ et sauvegardez le fichier par défaut ‘default.vcl’.
cd /etc/varnish/
cp default.vcl default.vcl.aseli
Modifiez la configuration du vernis par défaut.vcl’ en utilisant l’éditeur vim.
vim default.vcl
Définissez la configuration ‘backend’ à la ligne 16. Le backend de notre configuration est Apache, et il fonctionne sur le port 8080. La configuration de varnish pour notre configuration apache devrait donc être la suivante:
backend default {
.host = "127.0.0.1";
.port = "8080";
}
Enregistrer et quitter.
– Exécution de Varnish sur le port 80
Ensuite, nous devons modifier les ports de varnish par défaut. Les ports par défaut pour varnish sont ‘6081’ et ‘6082’, et nous devons changer le port en port HTTP 80 (uniquement pour l’adresse publique).
Modifiez la configuration du paramètre varnish dans le répertoire ‘/etc/default’.
cd /etc/default/
vim varnish
Modifiez la ligne ‘DAEMON_OPTS’, modifiez le port par défaut ‘6081’ pour l’adresse publique avec le port HTTP standard ’80’ comme indiqué ci-dessous.
DAEMON_OPTS="-a :80 \
-T localhost:6082 \
-f /etc/varnish/default.vcl \
-S /etc/varnish/secret \
-s malloc,256m"
Enregistrer et quitter.
Ensuite, nous devons éditer le fichier de service varnish ‘varnish.service « . Allez dans le répertoire ‘/lib/systemd/system’ et modifiez le fichier de service à l’aide de vim.
cd /lib/systemd/system/
vim varnish.service
Sur la ligne ‘ExecStart’, modifiez la commande varnish start comme ci-dessous.
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
Enregistrer et quitter.
Rechargez la configuration du service systemd, puis redémarrez varnish.
systemctl daemon-reload
systemctl restart varnish
Vérifiez maintenant varnish et assurez-vous qu’il fonctionne sur le port HTTP 80.
netstat -plntu
Ainsi, Varnish s’exécute maintenant sous le port HTTP 80 en tant que front-end pour le serveur Web Apache, qui se trouve sur le port 8080.
Étape 5 – Test
Test à l’aide de la commande curl.
curl -I hakase-labs.co
Assurez-vous d’obtenir l’en-tête HTTP comme indiqué ci-dessous.
Vérification à partir du navigateur Web, l’URL de mon serveur de test est http://hakase-labs.co/. Choisissez l’URL de votre serveur ici.
Et nous obtenons toujours du contenu Apache.
Vérifiez le journal des vernis à l’aide de la commande « varnishncsa « .
varnishncsa
Et nous obtenons le journal uniquement à partir du journal d’accès Apache.
L’installation et la configuration de Varnish pour le serveur web Apache sont terminées.