多层nginx代理下从任意层级访问服务获取客户端ip

先上配置

#配置可能来访问的友方nginx,最外层可不加(在server外层配置)
	map $remote_addr $is_white_ip {
	    default false;
	    '10.10.10.10' true;//可复制填写多个ip
	}

在server中添加下面的代码
	#可信时
     if ( $is_white_ip = true ){
        	
      		set $real_ip $http_x_real_ip;
			
       }
       #不可信时
	if (  $is_white_ip = false ){
		
		set $real_ip $remote_addr;
       }
	proxy_set_header X-Real-IP $real_ip;
	proxy_set_header REMOTE-HOST $real_ip;

在代码中可获得客户端ip
思路就是以第一个访问的nginx获取到的客户ip为首选,其它nginx,如果是来自于可信ip的访问,就可修改真实ip

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值