1 votes

HAProxy 504 Time-out de passerelle Exchange 2016

J'ai essayé d'utiliser HAProxy en tant que proxy et répartiteur de charge pour mes 2 serveurs de messagerie Exchange 2016. Chaque fois que je tape l'IP du serveur HAProxy, j'obtiens une erreur "504 Gateway Time-out". J'ai essayé de modifier la configuration mais cela n'a pas fonctionné. Voici la configuration que j'utilise actuellement :

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

    # Emplacement par défaut des certificats SSL
    ca-base /etc/ssl/certs
    crt-base /etc/ssl/private

    # Listes de chiffrement par défaut à utiliser sur les sockets d'écoute SSL.
    # Pour plus d'informations, voir ciphers(1SSL). Cette liste provient de :
    #  https://hynek.me/articles/hardening-your-web-servers-ssl-ciphers/
    ssl-default-bind-ciphers ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS
    ssl-default-bind-options no-sslv3

defaults
    log global
    mode    http
    option  httplog
    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

#---------------------------------------------------------------------
# Configuration simplifiée
#---------------------------------------------------------------------

frontend exchange
    bind *:80
    default_backend exchange_servers

backend exchange_servers
    balance roundrobin
    server EXCHANGE1 192.168.80.140:443 check
    server EXCHANGE2 192.168.80.141:443 check 

Voici la page de statistiques de Haproxy : Page de statistiques de Haproxy :

0 votes

Si vous consultez la page/socket des statistiques, les serveurs backend sont-ils signalés comme étant en ligne ?

0 votes

@GregL Oui, ils sont tous les deux répertoriés comme étant opérationnels. J'ai mis à jour la question avec une capture d'écran de la page des statistiques.

1voto

Justin Morrison Points 21

L'erreur était qu'il fallait le définir en "mode tcp" pour le configurer en proxy de niveau L4 au lieu d'un proxy de niveau L7. Voici la configuration de travail mise à jour :

 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

    # Emplacements par défaut du matériel SSL
    ca-base /etc/ssl/certs
    crt-base /etc/ssl/private

    # Chiffres par défaut à utiliser sur les sockets d'écoute SSL activées.
    # Pour plus d'informations, voir ciphers(1SSL). Cette liste provient de :
    #  https://hynek.me/articles/hardening-your-web-servers-ssl-ciphers/
    ssl-default-bind-ciphers ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS
    ssl-default-bind-options no-sslv3

defaults
    log global
    mode    http
    option  httplog
    option  dontlognull
    option  forwardfor
    option  redispatch
#   option  contstats
    retries  3
        timeout connect 5000
        timeout client  15m
        timeout server  15m
    timeout http-request 10s
    timeout queue 1m
    timeout http-keep-alive 10s
    timeout check 10s
    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 :1936
    mode http
    stats enable
    stats hide-version
    stats realm Haproxy\ Statistics
    stats uri /haproxy_stats
    stats auth Username:Password

#---------------------------------------------------------------------
# Configuration simplifiée
#---------------------------------------------------------------------

frontend exchange
    bind *:80
    bind *:443
    mode tcp
    default_backend exchange_servers

backend exchange_servers
    mode tcp
    balance roundrobin
    server EXCHANGE1 192.168.80.140:443 check
    server EXCHANGE2 192.168.80.141:443 check

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X