Ошибка 504 Gateway Time-out возникает в случае, когда сервер Nginx не получает ответа от сервиса в течение определенного времени.
Nginx и PHP-FPM
Наиболее распространенной причиной возникновения этой проблемы является совместная работа двух программ: Nginx и PHP FPM. В ситуации, когда PHP скрипты работают медленно, Nginx отображает ошибку тайм-аута шлюза (504) после того, как не получает ответа в течение тридцати секунд (по умолчанию).
Чтобы избавиться от этой ошибки, попробуйте увеличить таймаут:
| location ~ \.php$ { fastcgi_pass unix:/tmp/php7-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; fastcgi_read_timeout 300; } |
Не забудьте перезапустить Nginx после изменения настроек:
Прокси-сервер
Таймаут 504-го шлюза также может возникать при использовании Nginx в качестве прокси-сервера, например, при совместной работе с Apache. Для избежания проблем, следует настроить параметры таймаутов для proxy:
| server { ... proxy_connect_timeout 600; proxy_send_timeout 600; proxy_read_timeout 600; send_timeout 600; ... } |
Не забудьте перезапустить Nginx после изменения настроек:
Важно понимать, что избавление от медленных скрипов - это ключевой шаг в повышении производительности вашего сайта. Однако, стоит иметь в виду, что решение с настройкой таймаута не всегда будет эффективным, особенно при увеличении нагрузки на ваш сайт.
Понравилась статья? Поделиться с друзьями: