日期:2014-05-19  浏览次数:20695 次

有关apache反向代理问题,请各位大侠帮忙看看,很诡异。
大家好,我现在在做一个apache反向代理的东东,但是遇到麻烦了。
情况是这样的,我有一台A电脑、linux服务器一台。A电脑不能连接外网,但是可以访问内网资源。我通过A电脑登陆某系统,在该系统中有一个url链接(另一个系统),在A电脑可以连接外网的情况下,通过接口文档对URL的规范,可通过点击URL链接直接访问到另一个系统,并且根据URL传过去的参数什么的,不需要再次登录那个系统。
现在我的A电脑不能连外网的情况下,只能通过apache代理来实现,因为linux服务器是可以链接外网的。我这是一个weblogic的项目。 我具体的配置如下:

<VirtualHost *:9595>
#DocumentRoot "/opt/aspire/product/admincs/lyj/apache/htdocs"
ServerName admin.fj.monternet.com
ProxyRequests On

#百度
ProxyPass /ps http://220.181.111.147/
ProxyPassReverse /ps http://220.181.111.147/
#1系统
ProxyPass /qb http://335.85.35.24
ProxyPassReverse /qb http://335.85.35.24
#2系统
ProxyPass /fx http://335.85.35.24/cs/(S(g5r3h345rrosyz55dufmw4i3))/login.aspx?ReturnUrl=%2fcs%2fDefault.aspx
ProxyPassReverse /fx http://335.85.35.24/cs/(S(g5r3h345rrosyz55dufmw4i3))/login.aspx?ReturnUrl=%2fcs%2fDefault.aspx

ErrorLog logs/com-error_log
CustomLog logs/com-access_log common
TransferLog logs/hitranser.log
</VirtualHost>


我的apache的ip是10.1.3.212 端口是9595

我直接访问 http://10.1.3.212:9595/ps我可以直接访问到百度。
但是我在访问 http://10.1.3.212:9595/fx 就不可以了。
如果我这样访问就可以 http://10.1.3.212:9595/qb/cs/(S(g5r3h345rrosyz55dufmw4i3))/login.aspx?ReturnUrl=%2fcs%
因为1系统和2系统是一样的 只是URL不一样, 1系统的前面IP加2系统的后面附带的参数拼一起才能访问,但这个不是想要的结果,各位大侠帮忙看下。 我想要2系统那样的配置。 谢谢啦

------解决方案--------------------
你这个Proxy地址,带上了参数“?”,应该是有问题的。

去日志信息里面找找有没有错误信息吧。
------解决方案--------------------
不是的,反向代理可以提交表单数据。

几乎所有的网站都不会直接把中间件直接暴露出去,都是会在前面安置Apache配反向代理做前置机。


404应该是反向代理转的地址错误,你要检查下日志,看看Apache所生成的地址是否正确,最好复制到浏览器去试试看。
因为baidu这种站点,往往是多集群协作的,你直接写死一个IP,恐怕未必能正常工作。