apache反向代理域名访问,获取到内网ip,而不是代理ip

给客户组项目,配置了域名,访问域名时,总是访问的是内网ip,这样直接暴露内网ip不合规定,所以先审查代码,

jsp原先写法:

String path = request.getContextPath();


String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

<base href="<%=basePath%>">

这样总是获取真实ip,所以修改为

StringBuffer url = request.getRequestURL();//获取请求网址
String basePath = url.delete(url.length() - request.getRequestURI().length(), url.length()).append(request.getContextPath()).append("/").toString();

然后查看apache代理配置,发现配置错误,把httpd.conf修改后的代码粘贴在下面:

# Virtual hosts 打开虚拟主机的配置
#Include conf/extra/httpd-vhosts.conf

ProxyRequests off
ProxyPreserveHost On  #打开host域名请求地址,如果使用代理,获取的请求地址是对外域名,如果off关闭,则获取的是内网ip地址请求

<Proxy balancer://proxy>
                Order Deny,Allow
                Allow from  all
                BalancerMember http://192.168.0.150:8089  status=+H
                BalancerMember http://192.168.0.150:8090
</Proxy>
ProxyPass / balancer://proxy/
ProxyPassReverse / balancer://proxy/  #直接跳转到域名地址,如果不配置,系统直接转发到内网ip地址上面
TraceEnable Off



猜你喜欢

转载自blog.csdn.net/zhangtongpeng/article/details/79220668