gpt4 book ai didi

timeout - Apache + PHP-FPM 仅对特定路径设置代理超时

转载 作者:可可西里 更新时间:2023-11-01 13:32:00 27 4
gpt4 key购买 nike

我有 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

首先,这可能吗?那么正确的语法是什么?

非常感谢您的宝贵时间

最佳答案

只需使用 Proxy wildcard使用 /admin/*

虽然这将允许管理员下的任何脚本使用定义的设置运行,但在管理员(我假设登录)墙后面,这应该不是问题。

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

使用ProxySet在代理指令之外

无需定义 url/balancer/worker 即可使用 Proxy 指令中的

ProxySet。但是,您应该仍然能够在 Location 指令中使用 ProxySet。

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

如果 apache 仍然无法启动,请检查 apache 日志,或运行 strace -Ff apachectl start 来查找问题,它可能只是该版本的 apache 中的错误。

但是,我强烈怀疑您的 LocationMatch 正则表达式 ^/admin/.*\.php(/.*)?$ 是导致 apache 失败的原因。

关于timeout - Apache + PHP-FPM 仅对特定路径设置代理超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28043760/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com