2016-07-26 50 views
0

Ich habe zwei Server, die jeweils einen Wildfly-Anwendungsserver mit einem Dienst über https ausführen. Der Dienst kümmert sich um die https-Verschlüsselung. Vor den beiden Servern habe ich einen HAProxy als Load Balancer im TCP-Modus, um den SSL-Verkehr an die beiden Dienste weiterzuleiten.HAProxy-Statusprüfung im TCP-Modus auf https 404-Statuscode

Der HAProxy-Health-Check überprüft nur, ob der Server online ist, nicht der Dienst. Wenn der Dienst nicht ausgeführt wird, gibt Wildfly Folgendes zurück:

, die HAProxy als gesund interpretiert.

HAProxy config:

global 
    maxconn 2000 

defaults 
    log  global 
    mode http 
    option dontlognull 
    retries 3 
    option redispatch 
    timeout connect 5000 
    timeout client 10000 
    timeout server 10000 

listen backend 
    bind *:8443 
    mode tcp 
    balance roundrobin 
    option httpclose 
    server backend1 wildfly:8443 check 
    server backend2 xxx.xxx.xxx.xxx:8443 check 

Wie kann ich HAProxy verstehen, dass 404 - Not Found ist nicht gesund.

Antwort

1

Zwei Linien haben den Trick:

  1. option httpchk /server
    • httpchk HAProxy erzählt eine HTTP-Anfrage zu senden und prüfen Sie den Antwortstatus
    • /server die URI/Sub-Domäne meines Dienstes
    spezifiziert
  2. server backend1 wildfly:8443 check check-ssl verify none
    • check-ssl sagt HAProxy über https statt http zu überprüfen
    • verify none HAProxy erzählt das SSL-Zertifikat des Service zu vertrauen (alternativly Sie eine .pem-Datei angeben)

Voll HAProxy Config :

global 
    maxconn 2000 

defaults 
    log  global 
    mode http 
    option dontlognull 
    retries 3 
    option redispatch 
    timeout connect 5000 
    timeout client 10000 
    timeout server 10000 

listen backend 
    bind *:8443 
    mode tcp 
    balance roundrobin 
    option httpchk /server 
    server backend1 xxx.xxx.xxx.xxx:8443 check check-ssl verify none 
    server backend2 xxx.xxx.xxx.xxx:8443 check check-ssl verify none