Тайм-аут шлюза nginx 504 [закрыт]

Я пробовал предложения по адресу:

Как предотвратить тайм-аут шлюза с FastCGI на Nginx

nginx.conf (внутри http-раздела {})

#prevent gateway timeout
client_header_timeout 1000000;
client_body_timeout 1000000;
send_timeout 1000000;
fastcgi_read_timeout 1000000;

Но примерно через 60 секунд я получаю сообщение об ошибке 504 gateway timeout. У нас есть nginxx перед apache, поэтому я не уверен, что apache вызывает ошибку, но мы получаем тайм-аут шлюза 504, который явно исходит от nginx


person Chris Muench    schedule 27.02.2013    source источник
comment
Вам также необходимо увеличить keepalive_timeout.   -  person Thismatters    schedule 29.06.2020


Ответы (1)


В определении кода ответа HTTP 504 говорится: «Сервер действовал как шлюз или прокси и не получил своевременного ответа от вышестоящего сервера ". Итак, имеет смысл начать с рассмотрения этой проблемы с внутренним сервером.

Вы должны проверить, что происходит, когда вы делаете запрос непосредственно на внутренний сервер. Сколько времени нужно, чтобы ответить?

Обратите внимание, что с помощью Apache вы можете настроить свои журналы, чтобы они включали время, затраченное на обработку запроса. См. Параметры %t и %T для mod_log_config.

Если Nginx может получить доступ к внутреннему серверу, то можете и вы из командной строки. Вот пример синтаксиса для выполнения и времени запроса:

time -p GET -H 'Host: publicname.com'  http://127.0.0.1:8080/path/to/request

Инструмент «GET» является частью пакета libwww-perl, доступного в Ubuntu-подобных дистрибутивах Linux. Отправляя заголовок «Host:», вы генерируете запрос так же, как Nginx.

person Mark Stosberg    schedule 27.02.2013
comment
Я не могу получить прямой доступ к серверу, потому что wordpress не может работать, если вы используете номер порта. Но у нас есть еще один сайт на сервере, к которому я могу получить доступ, используя номер порта, и он никогда не выходит из строя. Время ожидания истекает только при использовании NGINX. - person Chris Muench; 27.02.2013
comment
Я обновил свой ответ, чтобы подробно описать, как имитировать запрос тем же способом, что и Nginx. - person Mark Stosberg; 27.02.2013