2013-09-04 5 views
5

У меня Ubuntu 12.04LTS работает. Мой веб-сервер Tomcat 7.0.42, и я использую HAProxy в качестве прокси-сервера. Мое приложение - это приложение сервлета, которое использует веб-узлы.502 Bad Gateway HAproxy

Когда-то, когда я запрашиваю свою страницу, я получаю ошибку «502 Bad Gateway» на некоторых ресурсах не на всех, а на некоторых. Я думаю, что это что-то делать с моей HAProxy конфигурации, которая заключается в следующем:

global 
    maxconn  4096 # Total Max Connections. This is dependent on ulimit 
    nbproc  1 

defaults 
    mode  http 
    option http-server-close 
    option httpclose 
# option redispatch 
    no option checkcache # test against 502 error 

frontend all 0.0.0.0:80 
    timeout client 86400000 
    default_backend www_backend 
    acl is_websocket hdr(Upgrade) -i WebSocket 
    acl is_websocket hdr_beg(Host) -i ws 

    use_backend socket_backend if is_websocket 

    backend www_backend 
     balance roundrobin 
     option forwardfor # This sets X-Forwarded-For 
     timeout server 30000 
     timeout connect 4000 
     server apiserver localhost:8080 weight 1 maxconn 1024 check 

    backend socket_backend 
     balance roundrobin 
     option forwardfor # This sets X-Forwarded-For 
     timeout queue 5000 
     timeout server 86400000 
     timeout connect 86400000 
     server apiserver localhost:8080 weight 1 maxconn 1024 check 

Что я должен изменить, чтобы предотвратить ошибку 502?

ответ

2

Сначала включите протоколирование haproxy. Он просто скажет вам, почему он дает 502 года. Я предполагаю, что бэкэнд «localhost: 8080» просто не в состоянии поддерживать или не может получить соединение в течение 4000 мс «тайм-аут connect 4000».

1

Возможно, вы превысили некоторые ограничения по умолчанию в HAProxy. Попробуйте добавить в глобальную сеть раздел:

tune.maxrewrite 4096 
tune.http.maxhdr 202 
+0

Не могли бы вы подробнее рассказать о том, почему предлагаемые изменения конфигурации касаются проблемы OP? – Castaglia

+0

Пожалуйста, добавьте более подробную информацию в ответ. Ответ может быть удален в текущей форме. – Jayan