给客户组项目,配置了域名,访问域名时,总是访问的是内网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