【发布时间】:2011-06-02 18:21:46
【问题描述】:
我正在尝试设置一个 apache 服务器来进行测试。目标是模拟负载均衡器。我们试图模拟的部分只是接受客户端的安全 httprequest 并使用 proxypass 将其(通过不安全的 http)传递给正确的服务器。这一切都 100% 有效。
问题是这样的:我想在几个开发环境中使用这个“负载均衡器”。为了能够测试应用程序的服务器端,我希望 proxypass 使用变量 URL 传递给客户端 IP。这将需要在 proxypass 规则中使用变量 URL。我找到了变量 REMOTE_ADDR,但我似乎无法在 proxypass 规则中使用它。我首先尝试了 apache 网站告诉我使用的语法,但没有奏效(http://REMOTE_ADDR/foobar/ 的 DNS 查找失败)。我知道我必须对 Interpolate 做一些事情,但我似乎无法弄清楚那到底是什么。
这条线做了它应该做的,所以服务器工作得很好:
代理通行证/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 开启
...
ProxyPass / http://${REMOTE_ADDR}:81/ 插值
错误:[client 127.0.0.1] 解析 URL 时出错 //:81: Invalid host/port
有人有什么想法吗?
【问题讨论】:
标签: apache configuration localhost proxypass interpolation