HAProxy antwortet mit NOSRV, während das Backend aktiv ist

11

Ich habe eine seltsame Situation, in der Anfragen an mein HAProxy mit einem 503 zurückgegeben werden. HAProxy-Protokolle zeigen, dass ein NOSRV-Fehler zurückgegeben wird:

Mar 26 19:47:01 localhost haproxy[23910]: 10.0.0.30:34261 
  [26/Mar/2013:19:46:48.579] fe v2/<NOSRV> 12801/-1/-1/-1/12801 503 
  212 - - SC-- 0/0/0/0/0 0/0 "GET /path/v2/ HTTP/1.1"

Während dieser Zeit wurde der Backend-Server bestätigt und empfing Datenverkehr von einem internen Load Balancer. Dies geschah spontan ohne Konfiguration oder andere Änderungen in HAProxy. Ein Neustart des HAProxy hat dies behoben.

Weiß jemand, ob dies ein bekanntes Problem ist? Vielen Dank für Ihre Hilfe / Einsicht.

Vielen Dank.

Meine Konfiguration sieht folgendermaßen aus:

global
    maxconn     1000 # Total Max Connections. This is dependent on ulimit
    daemon
    nbproc      1 # Number of processing cores. Dual Dual-core Opteron is 4 cores for example.
    log         127.0.0.1 local1
defaults
        mode        http
        clitimeout  60000
        timeout server 300000
        contimeout  4000
        option      httpclose # Disable Keepalive

backend v2
        server v2Elb internal-xxx.us-west-1.elb.amazonaws.com:80 weight 1 maxconn 512 check
backend v2e
        server v2eElb 10.0.1.28:80 weight 1 maxconn 512 check
frontend fe
        bind :80
        option httpchk
        option forwardfor # This sets X-Forwarded-For
        option httplog
        log global
        acl v2e path_beg /path/v2e
        acl v2 path_beg /path/v2
        redirect location https://my.domain.com/path/v2/ if !v2e !v2
        use_backend v2e if v2e
        use_backend v2 if v2
Raj
quelle
Ich habe das gleiche Problem. Konnten Sie dieses Problem beheben oder den Dienst von Zeit zu Zeit neu starten?
Atifm
Konnten Sie das lösen? Gleiches Problem, auch bei dynamischer
Hostauflösung
Sorry Leute. Ich bin davon weitergegangen und habe nicht weiter versucht, es zu lösen.
Raj

Antworten:

2

Ich stelle anhand der angegebenen Konfiguration fest, dass Sie vor einem AWS ELB-Load-Balancer ausgeführt werden, v2und ich vermute, dass dies v2edirekt auf einen App-Server verweist (der sonst hinter ELB stehen würde).

Wenn ja, deutet dies darauf hin, dass die Verbindung zwischen Ihrer HAProxy-Instanz und ELB zusammen mit dem 503-Fehler ein Timeout aufweist, entweder das 4-Sekunden- contimeoutTimeout oder das 300-Sekunden- serverTimeout. Je wahrscheinlicher die 4 Sekunden sind, contimeoutund die Sporadizität des Fehlers bestätigt weiter, dass es sich wahrscheinlich um ein Netzwerkproblem zwischen HAProxy und ELB handelt.

Ich würde versuchen, den contimeoutWert zu erhöhen und die Latenz zwischen HAProxy und ELB zu überwachen.

Jamescun
quelle