我正在使用 Apache Web 服务器 2.4 使用 proxypass 指令将传入的 HTTP 请求代理到我们的后端服务器。我还通过 Apache 传递来自后端服务器的传出请求,再次使用 proxypass,例如
< Location /outgoingrequest/ >
ProxyPass http://foobar.com/ retry=0 timeout=40 ttl=60
ProxyPassReverse http://foobar.com/
< /Location >
这正常工作,我可以在 Apache 日志中看到所有传入和传出的请求。然而 foobar.com 托管在 AWS 云中,它的 IP 地址偶尔会发生变化,这会导致所有传出请求失败。 DNS 查找显示新 IP 地址,因此很明显 mod-proxy 正在缓存旧 IP 地址。我添加了 ttl=60,但传出的请求持续失败数小时。
是否有我遗漏的东西,或者我应该以完全不同的方式做这件事?
最佳答案
您是否尝试使用以下方法完全禁用 Apache 的连接池:
ProxyPass http://foobar.com/ retry=0 disablereuse=On
Documentation说:
This helps in various situations (..) when backends themselves may be under round-robin DNS.
关于缓存的 Apache proxypass IP 地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33798653/