`
superxielei
  • 浏览: 262290 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
社区版块
存档分类
最新评论

使用方向代理后获得真实访问域名。

    博客分类:
  • java
阅读更多

在apache的httpd-vhosts.conf中有以下配置,实现abc.com和efd.com访问同一个tomcat服务器。

 

<VirtualHost *:80>
ServerName www.abc.com
ProxyPass / http://localhost:8091/
ProxyPassReverse / http://localhost:8091/
</VirtualHost>

<VirtualHost *:80>
ServerName www.efd.com
ProxyPass / http://localhost:8091/
ProxyPassReverse / http://localhost:8091/
</VirtualHost>

 在tomcat中获得当前访问的域名,如果通过getServerName每次获得的都是localhost:8091,而我们需要的abc.com或者efd.com。其实在使用了反向代理以后,mod_proxy会把原始请求信息放在HTTP Header来传送

X-Forwarded-For :客户端IP地址
X-Forwarded-Host : 原始的请求地址
X-Forwarded-Server :代理服务器的hostname·

 在java中通过request.getHeader获得。

request.getHeader("X-Forwarded-Host"))
 

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics