Ошибка 504 Gateway Timeout в Nginx

Thank you for reading this post, don't forget to subscribe!

Ошиб­ка 504 gateway time-out воз­ни­ка­ет, когда Nginx не может доста­точ­но дол­го полу­чить ответ от како­го-либо сер­ви­са. Напри­мер от PHP-FPM.

Nginx и PHP-FPM

Наи­бо­лее частая при­чи­на такой ошиб­ки — это сов­мест­ная рабо­та Nginx и PHP-FPM. В слу­чае, если есть очень мед­лен­ные PHP скрип­ты, Nginx будет отда­вать 504 ошиб­ку когда он не дожи­да­ет­ся отве­та в тече­ние 30 секунд (по умолчанию).

Что­бы изба­вить­ся от этой ошиб­ки, попро­буй­те под­нять вре­мя ожидания:

[codesyntax lang="php"]

[/codesyntax]

В этом слу­чае Nginx будет ждать 300 секунд (в 10 раз боль­ше стан­дарт­но­го значения)

Проксирование

Gateway time-out так­же может воз­ни­кать, когда Nginx исполь­зу­ет­ся как прок­си-сер­вер. Напри­мер, при рабо­те с Apache. Для того, что­бы избе­жать про­блем, необ­хо­ди­мо настро­ить пара­мет­ры вре­ме­ни ожи­да­ния при проксировании:

[codesyntax lang="php"]

[/codesyntax]

Nginx будет ждать ответ 600 секунд от прок­си­ру­е­мо­го сервиса

Не забы­вай­те пере­за­пус­кать Nginx после изме­не­ния настроек:

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