Действительно ли возможно расширить 504 тайм-аута в nginx на на основание местоположения

вероятно, никакой индексный файл в списке каталогов и каталогов не отключен? - cann Вы получают доступ к файлам непосредственно?

иначе проверьте полномочия чтения на пользователя веб-сервера.

выглядит странным мне иметь каталог statment внутри virtualhost контейнер, обычно не случай, хотя, если можно запустить веб-сервер, это, кажется, работает.

необходимо иметь в распоряжении namevirtualhost директиву для конфигурации для работы правильно.

<VirtualHost test:80> ... попытайтесь использовать *:80 или ip:80 вместо этого. разрешение может вызвать проблемы здесь и сделать virtualhost неэффективное.

4
задан 18 June 2014 в 02:27
4 ответа

Во-первых, взгляните на вложенные расположения. Причина, по которой ваш второй Блок местоположения не учитывается, потому что, когда nginx соответствует местоположению, он останавливается. Итак, http: //ubuntu-vm.test-api/someurlpath , если в соответствующей папке есть index.php, соответствует только местоположению ~ \ .php $ !

Я наткнулся на это интересное сообщение в блоге

Подводя итог, вам необходимо:

  1. Увеличить конфигурационную переменную max_execution_time в вашем php.ini.
  2. Увеличьте переменную конфигурации request_terminate_timeout php-fpm.
  3. Установите fastcgi_read_timeout в нужном месте в файле конфигурации nginx.

Проблема в том, что вы не можете указать php-fpm использовать другой файл конфигурации. только для этого одного места.

Однако вы можете установить переменную конфигурации php.ini в конфигурации nginx следующим образом:

fastcgi_param PHP_VALUE "max_execution_time=1000";
3
ответ дан 3 December 2019 в 03:30

You can set the timeouts in any location, server or http block, as shown in the nginx documentation. They will be inherited from the containing block, which is why the snippet you posted did not work.

0
ответ дан 3 December 2019 в 03:30

пробовали ли вы установить fastcgi_pass внутри этого места?

location {
     fastcgi_pass 127.0.0.1:9000;
     fastcgi_read_timeout 100000s;
}
0
ответ дан 3 December 2019 в 03:30

Я столкнулся с той же проблемой, и хотя я думаю, что вы могли бы использовать конфигурацию Nginx для установки fastcgi_read_timeout для каждого местоположения, как вы пытаетесь это сделать, это в конечном итоге оказывается сложным для правильно настройте местоположения таким образом. И тогда он может по-прежнему истекать, если вы также не установите max_execution_time PHP.

Я обнаружил, что лучшим решением будет настроить его так, чтобы таймауты Nginx на самом деле не использовались, и позволить PHP обрабатывать таймауты вместо этого (как это работает с другими серверами, такими как mod-Apache и командная строка).

Итак, в разделе "location ~ .php $" вашей конфигурации Nginx установите для request_terminate_timeout очень высокое значение (или, еще лучше, установите его на 0, чтобы отключить тайм-аут). А также установите fastcgi_read_timeout на максимальное количество секунд, в течение которого вы можете захотеть запустить любой скрипт.

А затем точно настройте его, установив значение по умолчанию, установив max_execution_time в вашем php.ini. Теперь, когда у вас есть сценарий, который вы хотите разрешить запускать в течение длительного времени, используйте команду PHP set_time_limit () в этих сценариях.

1
ответ дан 3 December 2019 в 03:30

Теги

Похожие вопросы