我遇到了 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
有办法吗?
到目前为止我已经测试过:
ConnectionTimeout
但
ProxyPass /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 文档