Назад | Перейти на главную страницу

Отключить тайм-аут шлюза для определенного порта / папки Nginx

Как я могу отключить тайм-аут nginx при доступе через определенный порт или просто указанную папку. Что проще.

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

Обычно, если у вас есть скрипты, которым нужно больше времени, есть несколько решений.

  1. Вы можете увеличить fastcgi_read_timeout и reqest_terminate_timeout. Но проблема в том, что не следует устанавливать слишком высокое значение. Если у вас есть много процессов, которые блокируют друг друга, они открыты в течение длительного времени, и возможно, что ваш сервер больше не может доставлять ваш контент.

  2. Я предпочитаю не выполнять долго выполняющиеся скрипты на вашем веб-сервере. Используйте командную строку и запустите свой сценарий, например, с помощью cron. Обычно веб-сервер - не очень хороший способ выполнять длительные скрипты.

У меня была такая же проблема до того, как через несколько месяцев мы перешли на php-cgi, и у меня был скрипт, который работал поверх wget. Я изменил скрипт, который он запускал с помощью интерфейса командной строки.

Здесь задействованы две директивы, одна для nginx fastcgi_read_timeout как описано Вот, другой находится в php-fpm.conf reqest_terminate_timeout, вы можете установить значение 0, чтобы отключить тайм-аут.

На nginx установлен fastcgi_read_timeout на любое произвольное большое значение, как указано в моей первой ссылке, вы можете установить это внутри любого конкретного location.