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

  1. Installer le serveur Web Apache
  2. Changer le port par défaut d’Apache
  3. Installer Varnish
  4. Configurer Varnish
  5. 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.

Leave a Reply

Votre adresse e-mail ne sera pas publiée.