Apache 2.4 仅为一个 URL 设置 ProxyTimeout

Apache 2.4 仅为一个 URL 设置 ProxyTimeout

我遇到了 Apache 代理的问题。

我被要求打开 Apache 和 Web 客户端之间的连接,因为我们正在使用 SSE。问题是默认情况下超时为 60 秒。我想大幅增加这个值,我发现这个ProxyTimeout指令很棒,但它会增加所有代理的超时时间。在我的 conf 上我有多个 ajp 代理,我本来想ProxyTimeout只将其应用于 /test:

ProxyPass /test ajp://some_ip:8009/some_URL
ProxyPassReverse /test ajp://some_ip:8009/some_url

ProxyPass /test2 ajp://some_ip2:8009/some_url2
ProxyPassReverse /test2 ajp://some_ip2:8009/some_url2

有办法吗?

到目前为止我已经测试过: ConnectionTimeoutProxyPass /test ajp://some_ip:8009/some_URL timeout=120无济于事。

我甚至尝试使用代理块指定超时:

<Proxy "ajp://some_ip:8009/some_url">
Proxyset timeout=10
</Proxy>

但再次失败了。

我不熟悉 Apache 中的超时级别(我知道有一些),而且我对 Apache 的了解相当有限。

谢谢你的帮助!

答案1

目前这是不可能的,因为里面的指令<Proxy>只在服务器启动时读取,而不是在每次请求后读取。

希望可能来自https://bz.apache.org/bugzilla/show_bug.cgi?id=62422

引入“代理”上下文后,应该可以ProxySet根据所服务的请求(例如:其 URL 等)来通用地修改代理设置()。

答案2

你的 mod 代理打开了吗?

我认为语法是

<Proxy "http://backend.example.com">
  ProxySet connectiontimeout=5 timeout=30
</Proxy>

来源:Apache 文档

相关内容