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 reverse proxy pour ton serveur Web (Apache ou Nginx). Varnish a été utilisé pour des sites Web très connus et à fort trafic, notamment Wikipedia, The Guardian et le New York Times.

Dans ce tutoriel, nous allons te montrer comment installer et configurer l’accélérateur HTTP Varnish comme proxy inverse pour le serveur Web Apache. Le véritable serveur Web Apache fonctionnera sous un port HTTP non standard (sur le port 8080). Et Varnish fonctionnera en tant que reverse proxy sur le port HTTP 80. Pour ce guide, nous utiliserons le serveur Ubuntu 18.04 LTS.

Ce que nous allons faire

  1. Installer le serveur Web Apache
  2. Modifier le port par défaut d’Apache
  3. Installer Varnish
  4. Configurer Varnish
  5. Tester l’installation

Conditions préalables

  • Ubuntu 18.04 LTS
  • Privilèges de racine

Étape 1 – Installer le serveur Web Apache

Pour commencer, installe le serveur Web Apache. Par défaut, il est disponible dans le dépôt d’Ubuntu.

Mets à jour le dépôt Ubuntu, puis installe Apache à l’aide de la commande apt.

apt update
apt install -y apache2

Une fois l’installation terminée, démarre le service Apache et active son exécution automatique 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 paquet de pare-feu nommé UFW.

Ouvre de nouveaux ports SSH, HTTP et HTTPS à l’aide des commandes UFW suivantes.

ufw allow ssh
ufw allow http
ufw allow https

Maintenant, démarre le service de pare-feu et active-le pour qu’il se lance automatiquement au démarrage du système.

ufw enable

Tape ‘y’ et appuie sur Entrée pour confirmer.

Les nouveaux ports pour HTTP, HTTPS et SSH ont été ouverts et sont accessibles depuis l’extérieur du réseau.

Si tu veux tester le serveur Web Apache, tu peux utiliser la commande netstat et t’assurer qu’Apache fonctionne sous le port 80.

netstat -plntu

Ou tu peux utiliser la commande curl suivante.

curl -I hakase-labs.co

Tu devrais obtenir le résultat indiqué ci-dessous.

Étape 2 – Modifier le port par défaut d’Apache

Dans ce tutoriel, nous utiliserons Apache comme serveur dorsal, et il ne fonctionnera pas sous le port HTTP standard 80. Le serveur Web Apache fonctionnera sur le port 8080 en tant que backend, et le port HTTP standard 80 sera utilisé par ‘Varnish’.

Pour modifier le port Apache par défaut, nous devons modifier la configuration d’Apache ‘ports.conf’ et toute la configuration des hôtes virtuels dans le répertoire ‘sites-available’.

Va dans le répertoire de configuration d’Apache.

cd /etc/apache2

Remplace le port ’80’ par ‘8080’ dans la configuration Apache ‘ports.conf’ et dans tous les fichiers d’hôtes virtuels du 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, teste la configuration d’Apache et assure-toi qu’il n’y a pas d’erreur, puis redémarre le service Apache.

apachectl configtest
systemctl restart apache2

Apache fonctionne maintenant sur le port HTTP ‘8080’, vérifie-le à l’aide de la commande ‘netstat’ comme indiqué ci-dessous.

netstat -plntu

Assure-toi que tu as le résultat ci-dessous.

Tu peux donc voir que le serveur Web Apache fonctionne sur le port ‘8080’.

Étape 3 – Installer l’accélérateur HTTP Varnish

Dans cette étape, nous allons installer Varnish à partir du dépôt Ubuntu. Et pour ce guide, nous utiliserons Varnish 5.2.

Installe Varnish à l’aide de la commande apt suivante.

apt install -y varnish

Une fois l’installation terminée, démarre Varnish et active-le pour qu’il se lance 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 fonctionne sous les ports ‘6081’ pour l’adresse publique et ‘6082’ pour l’adresse localhost. Vérifie-le en utilisant la commande netstat ci-dessous.

netstat -plntu

Et tu obtiendras le port varnish par défaut.

Étape 4 – Configurer Varnish comme proxy inverse pour Apache

Dans cette étape, nous allons configurer varnish sur le front du serveur Web Apache. Varnish fonctionnera sous le port http 80, et chaque demande des clients sera traitée par lui, avant d’être envoyée au serveur Web Apache fonctionnant sur le port 8080.

– Configuration du backend

Va dans le répertoire de configuration de ‘varnish’ et sauvegarde le fichier par défaut ‘default.vcl’.

cd /etc/varnish/
cp default.vcl default.vcl.aseli

Modifie la configuration de varnish ‘default.vcl’ à l’aide de l’éditeur vim.

vim default.vcl

Définis la configuration ‘backend’ à la ligne 16. Le backend de notre installation est Apache, et il fonctionne sur le port 8080. La configuration de varnish pour notre installation Apache doit donc être la suivante :

backend default {
    .host = "127.0.0.1";
    .port = "8080";
}

Sauvegarde et quitte.

– Exécuter Varnish sur le port 80

Ensuite, nous devons modifier les ports par défaut de varnish. Les ports par défaut de varnish sont ‘6081’ et ‘6082’, et nous devons changer le port pour le port HTTP 80 (uniquement pour l’adresse publique).

Modifie la configuration des paramètres de varnish dans le répertoire ‘/etc/default’.

cd /etc/default/
vim varnish

Modifie la ligne ‘DAEMON_OPTS’, remplace le port par défaut ‘6081’ pour l’adresse publique par 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"

Sauvegarde et quitte.

Ensuite, nous devons modifier le fichier de service varnish ‘varnish.service’. Va dans le répertoire ‘/lib/systemd/system’ et modifie le fichier de service à l’aide de vim.

cd /lib/systemd/system/
vim varnish.service

Sur la ligne ‘ExecStart’, modifie la commande de démarrage de varnish 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

Sauvegarde et quitte.

Recharge la configuration du service systemd, puis redémarre varnish.

systemctl daemon-reload
systemctl restart varnish

Vérifie maintenant varnish et assure-toi qu’il fonctionne sur le port HTTP 80.

netstat -plntu

Varnish fonctionne donc maintenant sous le port HTTP 80 en tant que frontal pour le serveur Web Apache, qui est sur le port 8080.

Étape 5 – Test

Fais un test en utilisant la commande curl.

curl -I hakase-labs.co

Vérifie que tu obtiens l’en-tête HTTP comme indiqué ci-dessous.

En vérifiant depuis le navigateur Web, l’URL de mon serveur de test esthttp://hakase-labs.co/. Choisis l’URL de ton serveur ici.

Et nous obtenons toujours le contenu d’Apache.

Vérifie le journal varnish à l’aide de la commande ‘varnishncsa’.

varnishncsa

Et nous obtenons le journal juste à partir du journal d’accès d’Apache.

L’installation et la configuration de Varnish pour le serveur Web Apache sont terminées.

Référence

Vous aimerez aussi...