Mise en place d’un serveur Proxy devant son serveur Web avec HAProxy

HAProxy n’est pas qu’un simple Proxy. Il permet aussi de faire du Load Balancing et de la High Availability.

Dans cet article, je vais vous montrer comment le configurer mais seulement pour une utilisation en tant que simple Proxy, sans Load Balancing, ni même High Availability.

Depuis votre machine Linux qui vous servira de Proxy, saisir les commandes suivante, en tant que su, pour installer HAProxy :

  • apt update
  • apt upgrade
  • apt install haproxy

Éditez ensuite le fichier /etc/haproxy/haproxy.cfg avec l’éditeur de votre choix, et renseignez le comme ci-dessous.

defaults
  mode tcp
  maxconn 30
  timeout client 10s
  timeout connect 5s
  timeout server 10s
  timeout http-request 10s

frontend myfrontend
  bind :80
  bind :443 ssl crt /etc/haproxy/cert/haproxy.pem
  http-request redirect scheme https unless { ssl_fc }
  default_backend myservers

backend myservers
  server server1 ip_lan_serveur_Web:443 check ssl verify none

Petites explications :

  • Dans defaults, l’argument maxconn permet de limiter le nombre de connexion simultanée. J’ai mis 30 dans mon exemple mais vous pouvez mettre plus. Cela dépend des ressources de votre serveur et du nombre de connexion qu’il peut tolérer avant saturation. Ça peut également vous protéger à moindre coup en cas d’attaque DoS.
  • Si le certificat de votre site Web est un certificat auto-signé via Let’s Encrypt, le certificat présent à la ligne bind :443 ssl crt /etc/haproxy/cert/haproxy.pem doit être le résultat de la concaténation entre la fullchain (Chaîne entière) et la privkey (Clé privée).
  • ssl verify none (backend) pour ignorer la vérification du certificat, vu que c’est votre serveur Web qui s’en chargera.