Apache + PHP-FPM Установить тайм-аут прокси только по определенному пути

У меня есть Apache 2.4 с PHP 5.5 без использования php_mod, но с PHP-FPM и mod_proxy_fcgi, поэтому я добавил следующее в vhost:

ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://127.0.0.1:7000/home/var/www/site/$1

Это работало хорошо, но когда у меня возникли проблемы с таймаутами, я добавил следующий код, чтобы исправить эту проблему в файле vhost:

<Proxy fcgi://127.0.0.1:7000>
ProxySet timeout=3600
</Proxy>
ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://127.0.0.1:7000/home/var/www/site/$1

Однако я хотел бы добавить этот тайм-аут только в панель администрирования веб-сайта, которая находится по адресу www.site.com/admin/xxx. Я попытался добавить тег местоположения, как показано ниже, но это не сработало (Apache не работает при перезапуске).

<LocationMatch ^/admin/.*\.php(/.*)?$>
<Proxy fcgi://127.0.0.1:7000>
ProxySet timeout=3600
</Proxy>
</LocationMatch >
ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://127.0.0.1:7000/home/var/www/site/$1

Прежде всего, это возможно? Тогда какой будет правильный синтаксис?

Большое спасибо за ваше время

6

Решение

Хотя это позволит любому сценарию ниже администратора запускаться с заданными настройками, за стеной администратора (и я предполагаю, что вход в систему) это не должно быть проблемой.

<Proxy "fcgi://127.0.0.1:7000/home/var/www/site/admin/*">
ProxySet timeout=3600
</Proxy>

ProxySet внутри директивы Proxy может использоваться без определения URL / балансировки / работника. Но ты должен все еще сможете использовать ProxySet в директиве Location.

<LocationMatch ^/admin/.*\.php(/.*)?$>
ProxySet "fcgi://127.0.0.1:7000" timeout=3600
</LocationMatch>

Если при запуске все еще происходит сбой apache, проверьте журналы apache или запустите strace -Ff apachectl start чтобы найти проблему, это может быть просто ошибка в этой версии apache.

Тем не менее, я сильно подозреваю, что ваше регулярное выражение LocationMatch ^/admin/.*\.php(/.*)?$ быть причиной отказа апача.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]