首页 > Web开发 > 详细

Apache配置代理后,Serverlet获取域名问题汇总

时间:2020-03-11 17:03:42      阅读:79      评论:0      收藏:0      [点我收藏+]

现场:

  使用Apache+Tomcat,Apache反向代理Tomcat的Serverlet,在Serverlet中获取请求的Host。

1、在apache配置文件中添加: ProxyPreserveHost on

   ProxyPreserveHost {on | off } //在反向代理中是否支持虚拟主机。如果启用此功能,代理会将用户请求报文中的Host:行发送给后端的服务器。

  打开了ProxyPreserveHost  就可以让Tomcat获取用户请求的Host了。

2、在Serverlet中使用req.getHeader 获取Host信息。

    req.getHeader("x-forwarded-host"); 得要服务器的域名

    req.getHeader("x-forwarded-server"); 得到服务器的域 

 

// Enumeration headerNames = request.getHeaderNames();
// while (headerNames.hasMoreElements()) {
// String key = (String) headerNames.nextElement();
// String value = request.getHeader(key);
// System.out.println(key + value);
// }
//
// System.out.println("x-forwarded-host:"+request.getHeader("x-forwarded-host"));
// System.out.println("x-forwarded-server:"+request.getHeader("x-forwarded-server"));
// System.out.println("referer:"+request.getHeader("referer"));

可以打印Header的内容。 

3、通过req.getHeader("referer") 可以做一下防盗链接。可以参考 https://blog.csdn.net/shenqueying/article/details/79426884

 

Apache配置代理后,Serverlet获取域名问题汇总

原文:https://www.cnblogs.com/mayt/p/12462911.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!