我的目标是通过一台代理服务器访问网络中的不同网络服务。背景问题是代理服务器是客户端访问的唯一服务器。
代理服务器具有IP 192.168.1.1,我在IP 192.168.1.124上运行了一个Web服务(IPS和名称只是示例)。当客户端服务器访问http://192.168.1.1/webservice/时,他的请求必须转发到http://192.168.1.124/,但客户端切勿看到WebService的实际IP。客户端的浏览器仍应仅查看URL http://192.168.1.1/webservice/*。另外,客户端的会话仍应通过此代理连接工作,如果网络服务执行任何重定向,则必须将其捕获并附加到代理URL上。例如,当Web服务将第一个请求重定向到http://192.168.1.1.124/home.html客户端应查看http://192.168.1.1/webservice/webservice/home.home.html
我谷歌搜索了很多,但是我无法提出一个合适的解决方案。我使用的最后一个配置是:
ProxyPreserveHost On
ProxyRequests Off
ProxyPass /snipeit/ http://192.168.1.124/
ProxyPassReverse /snipeit/ http://192.168.1.124/
使用此配置,请求以我想要的方式转发到Web服务。但是,当Web服务以http://192.168.1.124/home.html等不同的URL回复时,客户端被重定向到http://192.168.1.1.1/home.html,并且浏览器显示出404错误。因为它应该访问http://192.168.1.1/webservice/home.html。当我手动键入此URL时,我会得到正确的页面。
我在做什么错?/我想念什么?预先感谢。
您可以尝试这样的事情:
(首先确保启用mod_proxy_html
)
<Location /app1/>
ProxyHTMLURLMap / /app1/
</Location>
<Location /app2/>
ProxyHTMLURLMap / /app2/
</Location>