一、$remote_addr
表示发出请求的客户端主机的 IP 地址,但它的值不是由客户端提供的,而是Nginx
与客户端进行TCP
连接过程中,获得的客户端的真实地址 IP
地址,REMOTE_ADDR
无法伪造,因为建立 TCP
连接需要三次握手,如果伪造了源 IP
,无法建立 TCP
连接,更不会有后面的 HTTP
请求。
当你的浏览器访问某个网站时:
- 假设中间没有任何代理,那么网站的
Web
服务器(Nginx
,Apache
等)获取的remote_addr
为你的机器IP
。 - 如果你用了某个代理,那么你的浏览器会先访问这个代理,然后再由这个代理转发到网站,这样
Web
服务器获取的remote_addr
为代理机器的IP
。
二、$X-Real-IP
X-R