Ошибка 504 в Nginx + Passenger для долго выполняющихся процессов Rails - PullRequest
1 голос
/ 06 марта 2012

У нас есть процесс импорта Rails файл, который работает в течение длительного времени. После перехода на Nginx из Apache мы начали получать 504 ошибки тайм-аута через ровно 10 минут каждый раз - у нас нет 10-минутного ограничения, установленного где-либо в нашем nginx.conf. Я посмотрел на несколько вопросов / ответов на StackOverflow, но не нашел решения. Я не хочу возвращаться к Apache, так как нам нравится простота и скорость Nginx, но это сводит меня с ума, поскольку я пробовал каждый параметр конфигурации Nginx, который я мог найти: -)

Это в настоящее время, что у меня есть в нашем файле nginx.conf - то, что я делаю неправильно?

http {
    keepalive_timeout 300 300;
    keepalive_requests 20;
    send_timeout 30m;
    proxy_read_timeout 30m;
    proxy_connect_timeout 30m;
    ...

    server {
        listen 80;
    ...
    server {
        listen 443;

Ответы [ 2 ]

1 голос
/ 11 марта 2012

Оказывается, 10 минут - это жестко заданный лимит Nginx и Passenger; получил это электронное письмо непосредственно от Пассажира:

10-минутный тайм-аут жестко запрограммирован в модуле Phusion Passenger. Но 10 минут - это уже максимальное время ожидания Nginx позволяет, так что нет возможности увеличить его.

0 голосов
/ 07 марта 2012

Вы пропустили важную часть вашей конфигурации, но я предполагаю, что вы, вероятно, делаете fastcgi_pass, а не proxy_pass.Вы захотите взглянуть на эти директивы client_header_timeout, client_body_timeout и send_timeout.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...