NGINX+tomcat作反向代理之后获取客户端访问ip地址

在简单的tomcat服务器环境下获取访问客户端ip很容易,通过servlet API即可,但是复杂环境下,比如tomcat通过NGINX代理之后就行不通了,获取的永远都是NGINX服务器的ip地址。这时如果要获取客户端ip可以通过NGINX提供的全局变量来实现,下面我通过几个截图来展示:

  • NGINX配置如下:
    这里写图片描述
    截图中使用的以$符号开头的都是NGINX的变量,具体有哪些变量可以参考NGINX官网文档,地址: https://nginx.org/en/docs/varindex.html

  • 然后通过访问NGINX代理服务器,NGINX会将它所包含的变量值设置到请求头中,然后在tomcat服务器环境下去解析请求头即可获取远程客户端ip,比如如下访问NGINX的请求:
    这里写图片描述


其中http://192.168.9.142 是NGINX服务器ip地址,tomcat服务器打印结果如下:
这里写图片描述


说明: 其实不论是单tomcat简单环境,还是与其他web服务器(如nginx、apache)整合的环境,获取的客户端ip地址都是不可靠的,在公网上不是谁的电脑都能拥有真实ip的,都是通过代理出去的

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值