избежать получения ответа 504 от NGINX

Я использую NGINX в качестве обратного прокси-сервера для нового интерфейса веб-приложения поверх старого сервиса.

NGINX обслуживает статические ресурсы и перенаправляет запросы API на старый сервер (также скрывая его от общественности, поскольку он не может иметь настройку SSL A+).

Время от времени я получаю 504 ответа об истечении времени ожидания шлюза. Такое ощущение, что NGINX повторно использует соединения, а веб-сервер с другой стороны больше не отвечает после повторного использования в течение слишком долгого времени.

Решение очень простое, простое sudo service nginx restart исправляет эти тайм-ауты шлюза, но я все же хотел бы исправить этот "глюк" раз и навсегда.

Простая схема:

Users              New Website (NGINX)              Old Website (ASP?)
  /           <<<   serves index.html
  /api/item   <<<   change headers and forward  >>>  API request  >\ 
                                                                   |
              <<<   change headers and forward <<<   API response </

person Valerio    schedule 22.03.2016    source источник


Ответы (1)


Статус HTTP 504 означает, что вышестоящий сервер не работает или медленно отвечает в течение указанного времени ожидания.

Увеличьте proxy_<*>_timeout и перезагрузите nginx.

Найдите директивы здесь — http://nginx.org/en/docs/http/ngx_http_proxy_module.html

person Tan Hong Tat    schedule 22.03.2016