HAProxy отвечает с NOSRV, пока бэкэнд не работает

11

У меня странная ситуация, когда запросы к моему HAProxy возвращаются с 503. Журналы HAProxy показывают, что он возвращает ошибку 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"

В течение этого времени внутренний сервер был подтвержден и получал трафик от внутреннего балансировщика нагрузки. Это произошло спонтанно, без каких-либо настроек или других изменений в HAProxy. Перезапуск HAProxy исправил это.

Кто-нибудь знает, если это известная проблема? Спасибо за вашу помощь / понимание.

Спасибо.

Моя конфигурация выглядит так:

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
Радж
источник
У меня такая же проблема. Удалось ли вам решить эту проблему или просто перезапускать сервис так часто?
Atifm
Вы смогли решить это? Та же проблема, даже с динамическим разрешением хоста
Паулюс Драгунас
Простите, ребята. Я перешел от этого и не пытался решить.
Радж

Ответы:

2

Из указанной конфигурации я замечаю, что вы работаете перед балансировщиком нагрузки AWS ELB, v2и я предполагаю, что это v2eуказывает непосредственно на сервер приложений (который в противном случае был бы позади ELB)?

Если это так, это говорит мне о том, что, наряду с ошибкой 503, соединение между вашим экземпляром HAProxy и ELB достигает тайм-аута, либо 4-секундного, contimeoutлибо 300-секундного server. Более вероятным является 4 секунды, contimeoutи спорадичность ошибки еще раз подтверждает, что это может быть проблема сети между HAProxy и ELB.

Я бы попытался увеличить contimeoutзначение, а также отслеживать задержки между HAProxy и ELB.

Jamescun
источник