У нас есть ситуация, когда сайт начинает обслуживать шлюз 502 Bad Gateway, но, похоже, не восстанавливается после восстановления вышестоящих серверов. Сервер nginx настроен на запросы прокси / балансировки нагрузки для двух вышестоящих серверов. Похоже, что сервер базы данных начнет получать высокую среднюю нагрузку, в результате чего веб-серверы (вышестоящие серверы) будут медленно обслуживать контент и тайм-аут (в соответствии с сервером nginx). Затем Nginx будет обслуживать 502, что имеет смысл в данной ситуации.
Что странно, так это то, что кажется, что nginx не реагирует на восстановление веб-серверов, и мы должны перезапустить nginx, чтобы он снова начал обслуживать сайт. Есть хороший способ исправить это? В настоящее время я просматриваю настройки прокси-сервера, чтобы увидеть, есть ли что-то для установки, но мне не удалось ничего найти.
Глядя на журналы nginx, мы видим такие записи (просто вытащили три примера ошибок за этот период времени):
2013/06/12 13:53:40 [error] 29840#0: *258391 upstream timed out (110: Connection timed out) while reading response header from upstream, client: n.n.n.n, server: www.example.org, request: "GET / HTTP/1.1", upstream: "http://n.n.n.n:80/", host: "www.example.org"
2013/06/12 13:54:11 [error] 29840#0: *261105 no live upstreams while connecting to upstream, client: n.n.n.n, server: www.example.org, request: "GET /HTTP/1.1", upstream: "http://example_rack/", host: "www.example.org"
2013/06/12 13:54:46 [alert] 29840#0: *261470 stalled cache updating, error:0 while closing request, client: n.n.n.n, server: n.n.n.n:80