HAProxy respondendo com NOSRV enquanto o backend está ativo

7

Eu tenho uma situação estranha em que as solicitações para o meu HAProxy estão retornando com um 503. Os logs do HAProxy mostram o retorno de um erro do 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 de back-end foi confirmado e recebeu tráfego de um balanceador de carga interno. Essa coisa aconteceu espontaneamente sem qualquer configuração ou outras alterações no HAProxy. Reiniciar o HAProxy corrigiu isso.

Alguém sabe se esse é 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
    
por Raj 27.03.2013 / 00:40

1 resposta

1

Percebo na configuração fornecida que você está correndo na frente de um balanceador de carga do AWS ELB v2 e acredito que v2e aponte diretamente para um servidor de aplicativos (que estaria, de outra forma, atrás do ELB)

Se for isso, isso sugerirá que, junto com o erro 503, a conexão entre sua instância HAProxy e o ELB está atingindo um tempo limite, o tempo limite de 4 segundos contimeout ou o tempo limite de 300% server . O mais provável é o 4 segundo contimeout e 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 valor de contimeout , bem como monitorar a latência entre o HAProxy e o ELB.

    
por 27.03.2013 / 04:41