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 didacticiel, nous allons vous montrer comment installer et configurer l'accélérateur HTTP de vernis 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 CentOS 7.
Ce que nous allons faire
- Installer Apache sur CentOS 7
- Configurer Apache sur le port 8080
- Installer Varnish sur CentOS 7
- Configurer Varnish en tant que proxy inverse pour Apache
- Configurer le pare-feu
- Test
Prérequis
- Serveur CentOS 7
- Privilèges root
Étape 1 - Installer et configurer Apache sur CentOS 7
Nous allons installer le serveur Web Apache/httpd à partir du référentiel CentOS 7, puis configurer le serveur qui s'exécutera sur le port 8080.
Installez Apache/httpd à l'aide de la commande yum ci-dessous.
yum -y install httpd
Une fois l'installation terminée, démarrez le service httpd et activez-le pour qu'il s'exécute au démarrage du système à l'aide des commandes ci-dessous.
systemctl start httpd
systemctl enable httpd
Le service httpd est donc en cours d'exécution. Vérifiez-le à l'aide de la commande netstat ou curl comme indiqué ci-dessous.
netstat -plntu
curl -I localhost
Ainsi, avec cela, le serveur Web Apache/httpd a été installé.
Étape 2 - Configurer Apache sur le port 8080
Dans cette étape, nous allons configurer le serveur Web Apache/httpd pour qu'il s'exécute sur le port 8080. Pour cela, nous devons d'abord modifier le fichier de configuration 'httpd.conf'.
Accédez au répertoire de configuration d'Apache et modifiez le fichier httpd.conf.
cd /etc/httpd/
vim conf/httpd.conf
Modifiez le port par défaut 80 en 8080 sur la ligne "Écouter".
Listen 8080
Enregistrez et quittez.
Testez maintenant la configuration et assurez-vous qu'il n'y a pas d'erreur. Redémarrez ensuite le service apache/httpd.
apachectl configtest
systemctl restart httpd
Maintenant, vérifiez à nouveau à l'aide de netstat et assurez-vous que le serveur Web fonctionne sur le port 8080.
netstat -plntu
Étape 3 - Installer Varnish sur CentOS 7
Dans cette étape, nous allons installer l'accélérateur HTTP hautes performances Varnish. Il est disponible sur le référentiel EPEL (Extra Packages for Enterprise Linux), nous devons donc installer le référentiel avant d'installer Varnish.
Installez le référentiel EPEL à l'aide de la commande suivante.
yum -y install epel-release
Installez maintenant Varnish à partir du référentiel EPEL à l'aide de la commande yum ci-dessous.
yum -y install varnish
Une fois l'installation terminée, démarrez Varnish et ajoutez-le pour le lancer au démarrage du système à l'aide des commandes systemctl ci-dessous.
systemctl start varnish
systemctl enable varnish
Par défaut, Varnish utilisera les ports 6081 et 6082. Vérifiez-le à l'aide de la commande netstat ci-dessous.
netstat -plntu
Et assurez-vous que nous obtenons le port Varnish par défaut comme ci-dessous.
Étape 4 - Configurer Varnish en tant que proxy inverse pour Apache
Varnish est donc installé et nous allons maintenant le configurer en tant que proxy inverse pour le serveur Web Apache. Varnish fonctionnera sur le port HTTP 80 par défaut.
Allez dans le répertoire de configuration de Varnish et modifiez la configuration par défaut dans 'default.vcl'.
cd /etc/varnish
vim default.vcl
Définissez la section backend par défaut. Nous utilisons le serveur Web Apache fonctionnant sur le port 8080, donc la configuration ci-dessous.
backend default {
.host = "127.0.0.1";
.port = "8080";
}
Enregistrez et quittez.
Ensuite, configurez Varnish pour qu'il s'exécute avec le port HTTP 80. Modifiez le fichier 'varnish.params' présent dans le répertoire de configuration de Varnish.
vim varnish.params
Dans ce fichier, modifiez la valeur de la ligne 'VARNISH_LISTEN_PORT' sur le port HTTP 80.
VARNISH_LISTEN_PORT=80
Enregistrez et quittez.
Maintenant, redémarrez Varnish et vérifiez les statistiques à l'aide de la commande netstat.
systemctl restart varnish
netstat -plntu
Assurez-vous d'avoir un résultat similaire à celui présenté ci-dessous.
Varnish HTTP Accelerator a été installé et agit maintenant comme un proxy inverse pour le serveur Web Apache.
Étape 5 - Configurer Firewalld
Dans cette étape, nous allons installer Firewalld et ouvrir de nouveaux ports HTTP et HTTPS.
Installez Firewalld à l'aide de la commande yum suivante.
yum -y install firewalld
Démarrez maintenant le service et activez-le pour qu'il s'exécute automatiquement au démarrage du système.
systemctl start firewalld
systemctl enable firewalld
Ensuite, ouvrez un nouveau port pour les requêtes HTTP et HTTPS à l'aide de la commande firewalld-cmd, comme indiqué ci-dessous.
firewall-cmd --add-service=http --permanent
firewall-cmd --add-service=https --permanent
Rechargez la configuration du pare-feu.
C'est ça. La configuration du pare-feu est terminée.
Étape 6 - Tester
Pour tester Varnish, exécutez d'abord la commande curl suivante.
curl -I hakase-labs.co
Et en sortie, assurez-vous d'obtenir un en-tête HTTP similaire à celui illustré dans la capture d'écran suivante.
Ensuite, testez Varnish depuis le navigateur. Pour cela, ouvrez votre navigateur Web et saisissez l'URL ou l'adresse du serveur.
http://hakase-labs.co
Assurez-vous que cela fonctionne comme ci-dessous.
Remarque : Si vous obtenez '403' Forbidden, vous devez créer un fichier 'index.html' dans le répertoire '/var/www/html'.
cd /var/www/html/
echo '<h1><center> Varnish- Apache - hakase-labs</center></h1>' > index.html
Ensuite, testez le journal de vernis à l'aide de la commande ci-dessous.
varnishncsa
Et vous obtiendrez le journal d'accès pour le vernis.
C'est ça. L'accélérateur HTTP Varnish a été installé et fonctionne maintenant comme un proxy inverse pour le serveur Web Apache.
Référence
- https://varnish-cache.org/