Skip to main content

Reverse proxy avec HA proxy

C'est quoi un reverse proxy ?

À l'inverse d'un le reverse proxy se place entre les flux qui sont sur internet et le serveur.

Imaginons un réseau hébergeant un site web accéssible sur internet grâce à une redirection de port. Ce site est protégé par un certificat SSL, il utilise donc le port 443 en https.

Si nous souhaitons rendre accéssible un deuxième site web en https du même réseau, il nous est impossible de faire deux redirections pour le même port. Nous allons voir qu'avec un reverse proxy c'est tout à fait possible.

Pré-requis

  • Vous devez avoir un nom de domaine
  • Avoir également un certificat SSL (que ce soit let's encrypt ou autre) voici un tuto pour une wildcard ACME pfsense ici
  • Un site web fonctionnel tournant sur le port 443

Aller dans le gestionnaire de pacquet pfsense et installer le pacquet HAproxy : Screenshot 2025-09-11 at 3.55.47 PM.pngScreenshot 2025-09-11 at 3.56.31 PM.png

Une fois le paquet installé, vous le trouverez sur la partie Services

Rendez vous sur le paquet HAproxy, et sur la partie backend et cliquer sur ajouter Screenshot 2025-09-11 at 4.01.27 PM.png

Le backend sera le service sur lequel on souhetera redirigé notre traffic

Pour la première partie remplissez là comme ceci

Nous allons appeler notre backend beta-backend modifier le nom à votre convenance. Au niveau de la section Server list rajoutez une règle, avec le même nom que le backend et le site (il est mieux d'uniformiser les noms pour ne pas se perdre, dans ce tuto nous faisons comme si le site web était beta.mondomaine.com)

Au niveau de Forwardto choisissez Adress+Port, placez y l'adresse ip de la machine hébergeant le site et le port, et cocher le Encrypt(SSL).

On va maintenant aller sur la partie Frontend et en créer un nouveau.

Appelez le http-frontend et remplissez le exatement comme ci dessous:

Ensuite au niveau des ACL rajouter une nouvelle règle s'appellant beta, au niveau des expressions mettez Host matcheset sur value placez l'url exact de votre site. Screenshot 2025-09-11 at 4.17.08 PM.png

Maintenant on va faire matcher notre backend qu'on a créer avec notre ACL.
Rajouter une action et sur use backend choisissez le beta-backend qu'on a crée et sur condition acl names écrivez beta qui est le nom de l'ACL qu'on a crée juste avant.
Au niveau de Default Backend mettez none. Screenshot 2025-09-11 at 4.19.42 PM.png

Ici laissez tout comme sur l'image : Screenshot 2025-09-11 at 4.20.51 PM.png

Sur Advanced setting laissez les paramètres comme ci dessous : Screenshot 2025-09-11 at 4.21.11 PM.png

ff