Ubuntu : configurer Apache Traffic Server comme reverse-proxy


Introduction

Apache Traffic Server est un serveur proxy cache hautement modulable capable de traiter de gros volumes de demandes simultanées tout en maintenant une très faible latence. Comparé à d’autres serveurs proxy populaires, tels que Varnish ou Squid, il consomme généralement moins de mémoire et répond plus rapidement. Il est également conçu pour tirer le meilleur parti des processeurs multi-cœurs modernes. Selon vos besoins, vous pouvez l’utiliser comme un reverse proxy ou comme un proxy direct.

Ce tutoriel explique comment le configurer en tant que reverse proxy cache. Il est fortement inspiré et traduit de ce tutoriel de Digital Ocean, avec en plus la configuration du https et la gestion d’un site WordPress avec apache en back-end !

Partie 1: Installation

L’installation est très simple puisque les paquets sont disponibles sur les dépôts officiels d’Ubuntu. Il suffit donc de faire un tour d’apt-get.

Et si jamais vous cherchez la dernière version de Traffic Server j’ai compilé la dernière version (au jour de cet article) en version 64 bits –>

Une fois téléchargé installez-le simplement :

Bon à savoir : si vous installez le package que je vous donne ci-dessus, les fichiers de config ne sont pas dans le dossier /etc/trafficserver mais dans /usr/local/etc/trafficserver

 

Partie 2 : Configurer Apache

Il faut dire à Apache de n’écouter qu’en local car il ne doit être accessible que par trafficserver.

Pour se faire on modifie le fichier : /etc/apache2/ports.conf

Et on rajoute devant le port « localhost »

A vous de choisir vos ports, pour ne pas avoir de problème avec un site http sur le port 80 il vaut mieux faire écouter apache sur un autre port, par exemple 81! De même pour l’utilisation du https, il s’agit du port 443, il vaut mieux de faire alors comme ceci :

Et dans vos fichiers de config (/etc/apache2/sites-enabled/), n’oubliez pas de préciser cela :

Maintenant on applique les modifications.

Partie 3 : Configurer Traffic Server comme reverse Proxy

Pour que Traffic Server se comporte comme un reverse proxy il faut lui dire quelle adresse d’entrée doit pointer avec quelle adresse interne. Ces instructions se trouvent dans le fichier remap.config.

Les règles se font simplement à l’aide d’un map et d’un reverse_map. Ici on redirige toutes les requêtes externes sur le port 80 vers le port interne 81 et toutes les requêtes sur le port 443 vers le port 444 :

Notez la présence du protocole https des deux côtés du serveur. Après plusieurs tests cette méthodes éloigne les bugs… Surtout quand vous avez WordPress en back-end.

Pour appliquer la configuration voici la commande :

 

Partie 4 : Configurer Traffic Server pour tout mettre en cache

Par défaut, Trafic Server met en cache une réponse HTTP seulement si elle contient une en-tête Cache-Control ou Expires spécifiant explicitement combien de temps l’élément doit être stocké dans le cache. Cependant, si votre serveur sert uniquement des fichiers statiques, il est plus simple de mettre en cache toutes ses réponses.

Vous devez ajouter simplement ceci dans le fichier records.config :

 

Partie 5 : Inspecter le cache

Pour afficher le contenu de la mémoire cache de Traffic Server, vous pouvez utiliser un outil appelé Cache Inspector, qui dispose d’une interface Web.

Pour activer cet outil il nous faut modifier encore une fois le fichier records.config :

Puis nous devons créer une règle afin d’assigner l’url extérieure de son choix vers ce Cache Inspector :

Partie 6 : Installer un certificat SSL pour utiliser le protocole HTTPS

Avant de commencer quoi que ce soit vérifiez que vos certificats sont au format PEM.

Si ce n’est pas le cas convertissez les comme dit ici.

N’oubliez pas de faire de même avec votre fichier CA.crt et combiné les deux dans un seul fichier avec en premier votre certificat puis le CA.

Ensuite on précise dans le fichier records.config que l’on veut mettre une couche de ssl sur certain port en rajoutant « :ssl » :

Puis on lui indique le dossier où se trouve nos certificats. Vous pouvez créer un dossier :

Mettez y vos certificats et adaptez ces lignes au fichier records.config

Maintenant on modifie un nouveau fichier, ssl_mutlicert.config :

Et on ajoute à la fin :

Voilà ! Tout devrait marcher.

Partie 7 : Optimisation pour WordPress

Si vous avez un site WordPress en back-end, il est fort probable que TrafficServer ne mette pas grand chose en cache.

Pour lui forcer la main voici une technique fait maison !

Modifiez le fichier cache.config et ajoutez ces règles de mise en cache. Ce fichier marche avec les noms de domaines en back-end.

Ici je demande à Traffic Server de forcer la mise en cache (ttl-in-cache :

 

Laisser un commentaire