获取负载均衡器后面的网站的访问者的推荐人域名

时间:2016-09-24 17:00:59

标签: java spring-mvc load-balancing

我有一个Spring(Java)网站,它使用Kemp Technologies的LoadMaster作为平衡器,它位于我的Web服务器之前。

我可以通过以下网址获取访问者的正确IP地址:

request.getRemoteAddr()

但是,我无法获得引荐来源的正确域名。这是我做的:

  1. 我在HandlerInterceptorAdapter中有以下代码,它为每个Web请求调用。代码是检查特定会话变量是否存在。如果是,则不采取行动。如果不是,请在会话中记录引荐来源的域名。

    HttpSession session = request.getSession();
    String value = (String) session.getAttribute("referrer");
    if (value == null) {
        String scheme = request.getScheme();
        String serverName = request.getServerName();
        int portNumber = request.getServerPort();
        String url = scheme +"://"+serverName+ (portNumber == 80? "": portNumber);
       session.setAttribute("referrer", url);
    }
    
  2. 在我需要推荐人域名的其他页面中,我有以下内容:

    String value = (String) request.getSession().getAttribute("referrer"); 
    
  3. 问题是我获得的价值总是我自己的域名(例如http://www.example.com)。

    我哪里可能出错?

    谢谢!

0 个答案:

没有答案