此时就需要在nginx配置的location块中添加
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for注意这里的意思是增加到X-Forwarded-For中,不是覆盖,而增加后的格式就是之前说的“client1,proxy1....”,默认的时候X-Forwarded-For是空的,如果有两个nginx,并且都配置了上面这个命令,则会在web服务器的request.getHeader("X-Forwarded-For")获得的是“用户ip,第一个nginx的ip”,分别对应之前的格式 。
proxy_add_forwarded_for包含着两个格式,前面一部分是请求头的X-Forwarded-For,而后面$remote_addr,也就是说是远程用户的ip
我们来个图浅显的解释下:

文章插图
X-real-ip与X-Forwarded-For的区别
- X-real-ip是覆盖,而X-Forwarded-For是后面添加
- 举个例子,请求由1.1.1.1发出,经过三层代理,第一层是2.2.2.2,第二层是3.3.3.3,而本次请求的来源IP4.4.4.4是第三层代理,
- 而X-Real-IP,没有相关标准,上面的例子,如果配置了X-Read-IP,可能会有两种情况:
最后一跳是正向代理,可能会保留真实客户端IP:X-Real-IP: 1.1.1.1最后一跳是反向代理,比如Nginx,一般会是与之直接连接的客户端IP:X-Real-IP: 3.3.3.3
- 而X-Forwarded-For的结果则是
【Nginx正向代理和反向代理什么区别?】
推荐阅读
- 高级开发必须掌握Nginx之一 反向代理、动静分离、负载均衡
- Golang模块代理goproxy.io源码研读
- nginx配置支持php-fpm
- windows环境下搭建简单Nginx+Tomcat集群
- Nginx的作用详解
- JDK动态代理可以不基于接口吗?
- 腾讯游戏|腾讯代理古风手游《云裳羽衣》宣布中止停服!玩家发声感谢中消协
- 什么是502 bad gateway nginx 502 bad gateway是什么意思
- 谭俊彦|TVB视帝自曝餐厅俩月亏损六位数,为自救已转型,代理火腿卖生肉
- 中芯国际|中芯国际重大人事变动:前董事长退出、代理董事长高永岗转正
