我试图弄清楚为什么我的 apache2 反向代理不起作用...希望有人可以澄清。
我正在使用 apache 服务器作为带有代理密码的网关:IP 是 10.184.1.2。这些是我在 000-default 配置文件中插入的 PP 指令。
ProxyPass / http://192.168.102.31/
ProxyPassReverse /http://192.168.102.31/
主机 192.168.102.31 是子网的内部 IP,客户端无法直接访问,只能通过 apache 网关访问。
当我尝试访问这样的地址时:http://apache_gateway_name/dir
我看到客户端尝试访问 192.168.102.31 地址,当然会发生超时。
有人能帮忙吗?谨致问候
答案1
听起来 ProxyPassReverse 与从远程 Apache 服务器 (192.168.102.31) 返回的 301/302 不匹配,某些客户端代码错误地重定向了浏览器,或者某些服务器端代码错误地构建了重定向位置。
- 使用 Chrome 的开发工具/Firebug/Wireshark 检查客户端活动。查明服务器是否发出 301/302 或由 javascript 驱动。
- 尝试从 ProxyPass* 指令中删除尾部斜杠
- 在 192.168.102.31 上运行 tcpdump/wireshark,查看返回的标头。特别注意响应中的“Location”标头和请求中的“Host”标头。