Guide de Configuration HAProxy
Ce guide explique comment configurer HAProxy pour différents types de services : RDP, Minecraft et sites Internet. Chaque section contient une explication étape par étape pour permettre à quiconque de configurer HAProxy avec ses propres liens et adresses.
Configuration Générale
Fichier de Configuration
Commencez par créer ou éditer le fichier de configuration HAProxy situé généralement à /etc/haproxy/haproxy.cfg
.
commande linux pour éditer la config :
sudo nano /etc/haproxy/haproxy.cfg
Voici la configuration générale :
global
log /dev/log local0
log /dev/log local1 notice
chroot /var/lib/haproxy
stats socket /run/haproxy/admin.sock mode 660 level admin
stats timeout 30s
user haproxy
group haproxy
daemon
# Default SSL material locations
ca-base /etc/ssl/certs
crt-base /etc/ssl/private
# SSL configurations
ssl-default-bind-ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256
ssl-default-bind-ciphersuites TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384
ssl-default-bind-options ssl-min-ver TLSv1.2 no-tls-tickets
defaults
log global
mode tcp
option tcplog
option dontlognull
timeout connect 5000
timeout client 50000
timeout server 50000
errorfile 400 /etc/haproxy/errors/400.http
errorfile 403 /etc/haproxy/errors/403.http
errorfile 408 /etc/haproxy/errors/408.http
errorfile 500 /etc/haproxy/errors/500.http
errorfile 502 /etc/haproxy/errors/502.http
errorfile 503 /etc/haproxy/errors/503.http
errorfile 504 /etc/haproxy/errors/504.http
listen stats
bind :9000
mode http
stats enable
stats hide-version
stats uri /
stats auth admin:admin
Configuration des Services
Frontend et Backend
Pourquoi un Frontend ?
Le frontend dans HAProxy est responsable de l'écoute des connexions entrantes des clients. Il définit quels ports et quelles adresses IP sont surveillés par HAProxy pour recevoir les demandes de connexion. Le frontend peut également effectuer certaines actions de filtrage ou de routage initial avant de transférer la demande à l'un des backends appropriés.
Pourquoi un Backend ?
Le backend dans HAProxy est responsable de la gestion des connexions sortantes vers les serveurs réels. Chaque backend contient une ou plusieurs directives server
qui définissent les serveurs vers lesquels les connexions doivent être dirigées. Le backend inclut également des paramètres pour surveiller la santé des serveurs et d'autres configurations spécifiques à la gestion des connexions.
Comment Modifier les Liens et Adresses ?
Pour changer les liens ou les adresses IP, vous devrez modifier les entrées correspondantes dans les sections frontend et backend. Par exemple, si vous avez un nouveau site ou serveur, vous ajouterez ou modifierez les directives de use_backend
et server
en conséquence.
1. Configuration RDP
Pour configurer HAProxy pour les services RDP (Remote Desktop Protocol), suivez ces étapes :
Frontend
Définissez un frontend qui écoute sur les ports RDP :
frontend rdp_frontend
bind *:3389
bind *:3390
bind *:3391
mode tcp
tcp-request inspect-delay 5s
tcp-request content accept if RDP_COOKIE
use_backend rdp_backend_qoyri if { dst_port 3389 }
use_backend rdp_backend_refu if { dst_port 3390 }
use_backend rdp_backend_bawikx if { dst_port 3391 }
Pour changer les ports RDP ou ajouter un nouveau, modifiez ou ajoutez une nouvelle ligne bind
et une nouvelle directive use_backend
.
Backend
Définissez les backends pour chaque port RDP :
backend rdp_backend_qoyri
mode tcp
server qoyri_server 192.168.0.5:3389 check
backend rdp_backend_refu
mode tcp
server refu_server 192.168.0.52:3389 check
backend rdp_backend_bawikx
mode tcp
server bawikx_server 192.168.0.169:3389 check
Pour changer les adresses des serveurs RDP, modifiez les lignes server
en conséquence.
2. Configuration Minecraft
Pour configurer HAProxy pour les serveurs Minecraft, suivez ces étapes :
Frontend
Définissez un frontend qui écoute sur le port Minecraft par défaut (25565) :
frontend minecraft
mode tcp
bind 0.0.0.0:25565
tcp-request inspect-delay 5s
acl mc_feiti_flg payload(5,15) -m sub feiti.qoyri.fr
tcp-request content accept if mc_feiti_flg
use_backend mc_feiti_app if mc_feiti_flg
acl mc_bawikx_flg payload(5,13) -m sub mc.bawikx.fr
tcp-request content accept if mc_bawikx_flg
use_backend mc_bawikx_app if mc_bawikx_flg
acl mc_refugier_flg payload(5,17) -m sub refugier.qoyri.fr
tcp-request content accept if mc_refugier_flg
use_backend mc_refugier_app if mc_refugier_flg
acl mc_garabou_flg payload(5,17) -m sub garabou.qoyri.fr
tcp-request content accept if mc_garabou_flg
use_backend mc_garabou_app if mc_garabou_flg
Pour ajouter ou modifier des serveurs Minecraft, ajustez les lignes acl
, tcp-request content accept
, et use_backend
.
Backend
Définissez les backends pour chaque serveur Minecraft :
backend mc_feiti_app
server mc_feiti_srv 192.168.0.52:25566 check
backend mc_bawikx_app
server mc_bawikx_srv 192.168.0.110:25565 check
backend mc_refugier_app
server mc_refugier_srv 192.168.0.52:25565 check
backend mc_garabou_app
server mc_garabou_srv 192.168.0.52:25610 check
Pour changer les adresses des serveurs Minecraft, modifiez les lignes server
.
3. Configuration des Sites Internet
Pour configurer HAProxy pour les sites web via SSL, suivez ces étapes :
Frontend
Définissez un frontend qui écoute sur le port HTTPS (443) :
frontend https_frontend
bind *:443
mode tcp
option tcplog
tcp-request inspect-delay 5s
tcp-request content accept if { req_ssl_hello_type 1 }
use_backend ssl_archive_backend if { req_ssl_sni -i archive.qoyri.fr }
use_backend ssl_cloud_backend if { req_ssl_sni -i cloud.qoyri.fr }
use_backend ssl_ftp_backend if { req_ssl_sni -i ftp.qoyri.fr }
use_backend ssl_gprojet_backend if { req_ssl_sni -i gprojet.qoyri.fr }
Pour ajouter ou modifier des sites web, ajustez les lignes use_backend
et req_ssl_sni
.
Backend
Définissez les backends pour chaque site :
backend ssl_archive_backend
mode tcp
server server1 192.168.0.52:443 check
backend ssl_cloud_backend
mode tcp
server server2 192.168.0.52:443 check
backend ssl_ftp_backend
mode tcp
server server3 192.168.0.52:443 check
backend ssl_gprojet_backend
mode tcp
server server3 192.168.0.52:443 check
Pour changer les adresses des serveurs web, modifiez les lignes server
.
Notes Importantes
- Redémarrage HAProxy : Après avoir modifié la configuration, redémarrez HAProxy pour appliquer les changements.
sudo systemctl restart haproxy
- Vérification de la Configuration : Vous pouvez vérifier la syntaxe de la configuration avant de redémarrer HAProxy avec la commande suivante :
sudo haproxy -c -f /etc/haproxy/haproxy.cfg
- Sécurité : Assurez-vous de sécuriser l'interface de statistiques en utilisant des mots de passe forts et en limitant l'accès par adresse IP si nécessaire.
En suivant ces étapes, vous devriez être capable de configurer HAProxy pour différents types de services et gérer efficacement la répartition de la charge et la disponibilité de vos applications.
No Comments