Боремся с ошибкой 504 Gateway Time-out


Как правило ошибка 504 возникает когда наш сервер NGINX не может в установленное время получить ответ от какого либо сервиса.

Не редка эта ошибка когда NGINX используется как прокси сервер с Apache. И что бы избежать проблем настраиваем время ожидания при проксировании.

В файле настроек nginx.conf добавляем:

server {
    ...
    proxy_connect_timeout       600;
    proxy_send_timeout          600;
    proxy_read_timeout          600;
    send_timeout                600;
    ...
}

В данном случае наш NGINX будет ждать 600 секунд ответа от Apache.

Так же ошибку 504 мы можем встретить при совместной работе NGINX с PHP-FPM. В особенности если есть очень медленные скрипты.

Что бы избавится от ошибки увеличиваем время ожидания ответа:

location ~ \.php$ {
    fastcgi_pass unix:/tmp/php5-fpm.sock;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
    fastcgi_read_timeout 300; # Указываем необходимое значение в секундах
}

Лучше конечно не увеличивать время ожидания, а оптимизировать работу скриптов, но бывают моменты что необходимо и такое решение.

#nginx

Copyright © 2013-2017