HAProxy respondendo com NOSRV enquanto o back-end está ativo

11

Eu tenho uma situação estranha em que as solicitações ao meu HAProxy estão retornando com um 503. Os logs do HAProxy mostram que ele retorna um erro de 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"

Durante esse período, o servidor back-end foi confirmado e estava recebendo tráfego de um balanceador de carga interno. Isso aconteceu espontaneamente sem nenhuma configuração ou outras alterações no HAProxy. Reiniciar o HAProxy corrigiu isso.

Alguém sabe se este é um problema conhecido? Obrigado pela sua ajuda / insight.

Obrigado.

Minha configuração é assim:

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
fonte
Eu estou tendo o mesmo problema. Você conseguiu resolver isso ou apenas reiniciou o serviço de vez em quando?
Atifm 18/08/19
você conseguiu resolver isso? Mesmo problema, mesmo com resolução dinâmica de acolhimento
Paulius Dragunas
Desculpe pessoal. Eu segui em frente e não o segui para tentar resolver.
Raj

Respostas:

2

Percebo pela configuração fornecida que você está executando na frente de um balanceador de carga do AWS ELB v2e acho que isso v2eaponta diretamente para um servidor de aplicativos (que estaria atrás do ELB)?

Nesse caso, isso me sugere que, junto com o erro 503, a conexão entre sua instância HAProxy e ELB está atingindo um tempo limite, o contimeouttempo limite de 4 segundos ou o servertempo limite de 300 segundos . O mais provável é o de 4 segundos contimeoute a esporadicidade do erro confirma ainda mais que é provável que seja um problema de rede entre o HAProxy e o ELB.

Eu tentaria aumentar o contimeoutvalor, bem como monitorar a latência entre HAProxy e ELB.

Jamescun
fonte