服务器使用nginx做代理,通过HttpServletRequest获取请求用户真实IP地址

Posted 辉﹏

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了服务器使用nginx做代理,通过HttpServletRequest获取请求用户真实IP地址相关的知识,希望对你有一定的参考价值。

首先,在nginx配置中添加如下配置

server {
    listen       80;
    server_name  www.wenki.info;    #要访问的域名

    charset utf8;

    location / {
        proxy_pass       http://wenki_info;
        proxy_set_header Host      $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

使用如下命令重新加载配置

nginx -s reload

 

服务端获取ip地址代码

public static String realIP(HttpServletRequest request) {
    String xff = request.getHeader("x-forwarded-for");
    if (xff != null) {
        int index = xff.indexOf(‘,‘);
        if (index != -1) {
            xff = xff.substring(0, index);
        }
        return xff.trim();
    }
    return request.getRemoteAddr();
}

 

以上是关于服务器使用nginx做代理,通过HttpServletRequest获取请求用户真实IP地址的主要内容,如果未能解决你的问题,请参考以下文章

学习Nginx

Nginx反向代理常用配置

Nginx反向代理的使用及原理

Linux服务器通过Nginx正向代理上网

nginx使用学习之正向代理反向代理负载均衡(配置实例详解)

10. Nginx实现反向代理