GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Comment accélérer Apache avec le cache HTTP Varnish sur Ubuntu 16.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 The New York Times.

Dans ce didacticiel, 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 fonctionnera sous un port HTTP non standard (fonctionnant sur le port 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

  1. Installer le serveur Web Apache
  2. Modifier le port par défaut d'Apache
  3. Installer le vernis
  4. Configurer le vernis
  5. Tester la configuration

Prérequis

  • Ubuntu 16.04
  • Privilèges root

Étape 1 - Installer le serveur Web Apache

Pour commencer, 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.

sudo apt update
sudo apt install -y apache2

Une fois l'installation terminée, démarrez le service Apache et activez-le pour qu'il s'exécute 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, afin de 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 activez-le pour qu'il se lance 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 - Modifier le port par défaut d'Apache

Dans ce didacticiel, nous utiliserons Apache comme serveur principal et il ne fonctionnera pas sous le port http standard 80. Le serveur Web Apache fonctionnera sur le port 8080 en tant que serveur principal et le port http standard 80 sera utilisé par ' Vernis'.

Pour changer le port apache par défaut, nous devons modifier la configuration apache 'ports.conf' et toute la configuration de l'hôte virtuel sous le répertoire 'sites-available'.

Allez dans le répertoire de configuration d'Apache.

cd /etc/apache2

Remplacez le port '80' par '8080' dans la configuration Apache 'ports.conf' et tous les fichiers de l'hôte virtuel 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 s'exécute sur le port '8080'.

Étape 3 - Installer l'accélérateur HTTP Varnish

Dans cette étape, nous allons installer Varnish à partir du référentiel Ubuntu. Et pour ce guide, nous utiliserons le vernis 4.

Installez le vernis à l'aide de la commande apt suivante.

sudo apt install -y varnish

Une fois l'installation terminée, démarrez Varnish et activez-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 16.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 en utilisant 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 le vernis sur le devant du serveur Web Apache. Varnish fonctionnera 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 back-end

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 de vernis 'default.vcl' à l'aide de l'éditeur vim.

vim default.vcl

Définissez la configuration 'backend' à la ligne 16. Le backend de notre configuration est Apache, et il s'exécute sur le port 8080. Ainsi, la configuration de vernis pour notre configuration apache devrait être la suivante :

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

Enregistrez et quittez.

- Exécuter du vernis sur le port 80

Ensuite, nous devons changer les ports de vernis par défaut. Les ports par défaut pour le vernis sont '6081' et '6082', et nous devons changer le port en port http 80 (uniquement pour l'adresse publique).

Modifiez la configuration des paramètres de vernis dans le répertoire '/etc/default'.

cd /etc/default/
vim varnish

Modifiez la ligne 'DAEMON_OPTS', changez 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"

Enregistrez et quittez.

Ensuite, nous devons éditer le fichier de service de vernis 'varnish.service'. Accédez au 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 de démarrage du vernis 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

Enregistrez et quittez.

Rechargez la configuration du service systemd, puis redémarrez le vernis.

systemctl daemon-reload
systemctl restart varnish

Vérifiez maintenant le vernis et assurez-vous qu'il s'exécute sur le port http 80.

netstat -plntu

Ainsi, Varnish s'exécute désormais sous le port http 80 en tant qu'interface pour le serveur Web Apache, qui se trouve sur le port 8080.

Étape 5 - Tester

Testez avec la commande curl.

curl -I hakase-labs.co

Assurez-vous d'obtenir l'en-tête http comme indiqué ci-dessous.

En vérifiant à 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 le contenu d'Apache.

Vérifiez le journal de 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.

Référence

  • Cache de vernis
  • Apache HTTPD


Ubuntu
  1. Comment accélérer Apache avec le cache HTTP Varnish sur Ubuntu 18.04 LTS

  2. Comment installer le serveur HTTP OpenLiteSpeed ​​avec PHP sur Ubuntu 18.04 LTS

  3. Comment installer le serveur HTTP Git avec Nginx sur Ubuntu 16.04

  4. Comment installer le serveur HTTP Git avec Nginx sur Ubuntu 20.04

  5. Comment installer le cache de vernis sur Ubuntu 18.04 LTS

Comment activer le protocole HTTP/2 avec Apache sur Ubuntu 20.04

Comment installer InvoiceNinja sur le serveur Ubuntu 18.04 avec Apache/Nginx

Comment installer InvoiceNinja sur le serveur Ubuntu 20.04 avec Apache/Nginx

Comment installer phpMyAdmin avec Apache sur Ubuntu 22.04 LTS

Comment installer le serveur HTTP Git sur Ubuntu 20.04 LTS

Comment accélérer Apache avec Varnish Cache sur CentOS 7