HAProxy répond avec NOSRV pendant que le backend est en place

11

J'ai une situation étrange où les demandes à mon HAProxy retournent avec un 503. Les journaux HAProxy montrent qu'il retourne une erreur NOSRV:

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"

Pendant ce temps, le serveur principal a été confirmé et recevait du trafic d'un équilibreur de charge interne. Cette chose s'est produite spontanément sans aucune configuration ou autres changements dans HAProxy. Le redémarrage de HAProxy a corrigé ce problème.

Est-ce que quelqu'un sait s'il s'agit d'un problème connu? Merci pour votre aide / perspicacité.

Merci.

Ma configuration ressemble à ceci:

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
la source
Je rencontre le même problème. Avez-vous pu résoudre ce problème ou simplement redémarrer le service de temps en temps?
Atifm
avez-vous pu résoudre ce problème? Même problème, même avec une résolution d'hôte dynamique
Paulius Dragunas
Désolé les amis. Je suis passé de là et je n'ai pas suivi pour essayer de résoudre.
Raj

Réponses:

2

Je remarque à partir de la configuration donnée que vous exécutez en face d'un équilibreur de charge AWS ELB v2et je suppose que cela v2epointe directement vers un serveur d'application (qui serait autrement derrière ELB)?

Si c'est le cas, cela me suggérera que, avec l'erreur 503, la connexion entre votre instance HAProxy et ELB atteint un délai d'expiration, soit le contimeoutdélai d'expiration de 4 secondes ou le serverdélai d'expiration de 300 secondes . La plus probable est la 4 seconde contimeoutet la sporadicité de l'erreur confirme en outre qu'il s'agit probablement d'un problème de réseau entre HAProxy et ELB.

J'essaierais d'augmenter la contimeoutvaleur ainsi que de surveiller la latence entre HAProxy et ELB.

Jamescun
la source