SpringBoot学习笔记31——通过nginx代理服务端获取客户端真实ip

50 篇文章 10 订阅
11 篇文章 1 订阅

适用nginx代理之后,在服务端就获取不到客户端真实的ip了,需要添加一下参数

proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr; #保留代理之前的真实客户端ip
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; #记录代理过程

添加位置如下:

server {
        #侦听18105端口
        listen       18105;

        #定义使用 www.nginx.cn访问
        server_name  localhost;

        #charset koi8-r;

        省略。。。

        location / {
	        root    /home/webfile/wuliuyuan/dist;
	        index  index.html index.htm;
	        # 动态页面
	        if ( !-e $request_filename) {
	            proxy_pass       http://192.168.144.171:8106;
	        }
                proxy_set_header Host $host;
                proxy_set_header X-Real-IP $remote_addr; #保留代理之前的真实客户端ip
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; #记录代理过程
            }    
}

在服务端通过Request获取到客户端真实的ip地址代码如下:

private String getRemoteIP(HttpServletRequest request) {
        if (request.getHeader("x-forwarded-for") == null) {
            return request.getRemoteAddr();
        }
        return request.getHeader("x-forwarded-for");
    }

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值