Убираем 504 Gateway Time-out nginx — при выполнении долгих скриптов

При запуске скриптов PHP требующих длительного выполнения бывает часто, что появляется ошибка 504 Gateway Time-out nginx, — это говорит о том, что nginx работает в режиме прокси и обрубает коннект не дождавшись выполнения скрипта.

Для решения этой проблемы в моем случае помогли следующие манипуляции:

    1) Увеличил время выполнения PHP скриптов.

504 Gateway Time-out - max_execution_time

Выставляем значение max_execution_time = 360 — это означает 360 сек.

     2) В конфиг nginx добавляем директивы позволяющие ожидать выполнения скрипта более длительное время.

В ispManager это делается так — Домены -> WWW-домены -> Конфиг -> Добавляем как на скрине, сохраняем и готово!

Поставлю 600 (600 сек.) — этого должно быть достаточно.

proxy_connect_timeout 600;
proxy_send_timeout 600;
proxy_read_timeout 600;
send_timeout 600;

Вот и все, теперь скрипты будут выполняться долго и nginx будет дожидаться выполнения — это очень часто требуется при парсинге или импорте/экспорте товаров (в моем случае).

 

Leave a Comment.