我正在尝试设置一个 apache 服务器用于测试目的。目标是模拟负载均衡器。我们试图模拟的部分只是接受客户端的安全 httprequest 并使用 proxypass 将其(通过不安全的 http)传递给正确的服务器。这一切都100%有效。
问题是这样的:我想在几个开发环境中使用这个“负载均衡器”。为了能够测试应用程序的服务器端,我希望 proxypass 使用变量 URL 传递给客户端 IP。这将需要在 proxypass 规则中使用变量 URL。我找到了变量 REMOTE_ADDR,但我似乎无法在 proxypass 规则中使用它。我首先尝试了 apache 网站告诉我使用的语法,但没有奏效(获取http://REMOTE_ADDR/foobar/的 DNS 查找失败)。我知道我必须对 Interpolate 做一些事情,但我似乎无法弄清楚那到底是什么。
这一行做了它应该做的,所以服务器工作得很好:
ProxyPass / http://localhost:81/
这些是我尝试过的(使用变量)失败的规则。
ProxyPass / http://${REMOTE_ADDR}:81/
错误:[client 127.0.0.1] 代理:DNS 查找失败:${remote_addr} 由 / 返回
ProxyPass / https://% {REMOTE_ADDR}s/
错误:[client 127.0.0.1] 代理:DNS 查找失败:%{remote_addr}s 返回 /
ProxyPassInterpolateEnv On
...
ProxyPass / http://${REMOTE_ADDR}:81/ interpolate
Error: [client 127.0.0.1] error parsing URL //:81: Invalid host/port
有人有什么想法吗?