Невозможно увеличить время ожидания на nginx с помощью php-fpm

Мой Nginx отказывается увеличивать тайм-аут для запроса с 60 секунд по умолчанию.

Я уже установил следующие параметры, но сервер все равно выдает мне 504 через 60 секунд:

fastcgi_connect_timeout 300s;
fastcgi_send_timeout 300s;
fastcgi_read_timeout 300s;
proxy_connect_timeout 300s;
proxy_read_timeout 300s;
client_header_timeout 300s;
client_max_body_size 200m;
client_body_timeout 300s;
send_timeout 300s;

Интересно, что установка значений на 30 секунд работает, и время запроса истекает через 30 секунд. Для request_terminate_timeout в PHP-fpm также установлено значение 300 секунд.

Какие параметры я должен установить, чтобы получить его дальше, чем 60 секунд?


person Fuher    schedule 07.09.2020    source источник
comment
Вы также установили max_execution_time в php.ini? Если нет, попробуйте это (не забудьте перезапустить php-fpm после изменения php.ini)   -  person Magnus Eriksson    schedule 07.09.2020
comment
я уже установил max_execution_time в php.ini на 300 и request_terminate_timeout на 300 в www.conf, и я все еще получаю ошибку тайм-аута шлюза 504   -  person Fuher    schedule 07.09.2020


Ответы (1)


Добавили ли вы следующие директивы в конец раздела «http»?

http {
    <...>
    include /etc/nginx/conf.d/.conf;

    proxy_send_timeout 180s;
    proxy_read_timeout 180s;
    fastcgi_send_timeout 180s;
    fastcgi_read_timeout 180s;
}

После этого вам также может потребоваться перезапустить сервер nginx.

Другая возможная причина, по которой у вас ничего не меняется, заключается в том, что вы можете отредактировать не тот файл, но я в этом сомневаюсь. :)

Чтобы проверить путь, nginx -t и nginx -V распечатают путь к файлу конфигурации nginx по умолчанию.

Источник: http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_read_timeout

person PatricNox    schedule 07.09.2020
comment
да, я уже сделал это, но у меня проблема с этим каталогом. внутри conf.d нет файла Pic1 Рис.2 - person Fuher; 07.09.2020
comment
@MagnusEriksson ой, непонятно, почему я написал fpm. - person PatricNox; 07.09.2020
comment
@fuher Если вы попытаетесь использовать nginx -t для проверки пути к конфигурации, вы можете найти его - person PatricNox; 07.09.2020
comment
я проверил путь, и он говорит --conf-path=/etc/nginx/nginx.conf - person Fuher; 07.09.2020
comment
@Fuher, что произойдет, если вы установите request_terminate_timeout=300s в конфигурации php-fpm? Обычно находится в /etc/php5/fpm/php-fpm.conf. - person PatricNox; 08.09.2020
comment
я устанавливаю request_terminate_timeout=300s в /etc/php/7.2/fpm/php-fpm.conf и возвращаю мне ошибку Job for php7.2-fpm.service failed because the control process exited with error code.. ERROR: [/etc/php/7.2/fpm/php-fpm.conf:26] unknown entry 'request_terminate_timeout' - person Fuher; 08.09.2020
comment
@Fuher, вы используете докер, бродягу или что-то подобное? Если это так, попробуйте перезапустить его вместе с процессом php-fpm, поскольку request_terminate_timeout является допустимой записью. - person PatricNox; 09.09.2020