nginx反向代理获取客户端的真实IP
1. nginx获取客户端的ip的简介
我们访问互联网的服务时,在服务端拿到的客户端IP将是反向代理IP,
而不是真实客户端IP,因此需要想办法来获取到真实客户端IP
访问流程:
client(192.168.43.100) -> ADSL(192.168.43.11) ->cdn(10.0.0.1)
->SLB(11.0.0.1反向代理4层) -> server(nginx)12.0.0.1
注:
相连的两个ip是相互信任的
2. 解析客户端ip的目的
在一些特殊场景下,往往需要获取用户的ip信息,但是nginx的反向代理实现跨域的
同时也彻底改变了服务器的请求来源,隔离了用户和服务器的连接, 为了解决这个问题,对于客户ip进行解析
3. nginx中的变量介绍
- 1. remote_addr
如果用了某个代理,那么浏览器会先访问这个代理,然后再由这个代理转发到网站 。这样这台代理机器的IP就是remote_addr
- 2. X-Forwarded-For(简称XFF)
X-F