Nginx 作为反向代理时设置的请求头

这三个参数是 Nginx 作为反向代理时设置的请求头,目的是把真实的客户端信息传递给后端应用(Tomcat、Spring Boot、Node.js 等)。

		location /api {
                        proxy_pass  http://172.28.3.106:8094;
                        proxy_redirect              http:// https://;
                        proxy_set_header            Host $host:$server_port;
                        proxy_set_header            X-real-ip $remote_addr;
                        proxy_set_header            X-Forwarded-For $proxy_add_x_forwarded_for;
                }

proxy_set_header Host $host:$server_port;

  • 含义:把客户端请求时的 Host 头信息 传给后端。
  • $host:请求的域名(可能来自 Host 头,也可能是请求的 IP)。
  • $server_port:Nginx 接收请求时监听的端口号。
  • 作用:后端应用拿到的 Host 头和用户访问的保持一致,避免后端误判。

👉 例子:
用户访问

http://example.com:8080/api/user

Nginx 转发时会带上:

Host: example.com:8080

proxy_set_header X-Real-IP $remote_addr;

  • 含义:告诉后端应用,真实客户端的 IP 地址
  • $remote_addr:Nginx 接收到请求时,客户端的源 IP。
  • 作用:让后端知道用户的真实 IP,而不是只看到 Nginx 的 IP。

👉 例子:
如果用户 IP 是 203.0.113.5,那么后端会收到:

X-Real-IP: 203.0.113.5

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

  • 含义:传递请求经过的 代理链路中的客户端 IP 列表

  • $proxy_add_x_forwarded_for:会在已有的 X-Forwarded-For 头后面追加 $remote_addr

  • 作用:

    • 如果请求直接来自客户端 → 就是客户端 IP。
    • 如果请求经过多个代理 → 会形成一个 IP 列表,最后一个就是最近的客户端。

👉 例子:
用户 203.0.113.5 → 代理1(Nginx1) → 代理2(Nginx2) → 后端。
后端收到的头可能是:

X-Forwarded-For: 203.0.113.5, 10.0.0.1, 10.0.0.2

(第一个 IP 永远是真实用户的公网 IP)


总结

Header 配置作用典型用途
Host $host:$server_port保留客户端访问的域名和端口后端根据域名/端口做路由或多租户
X-Real-IP $remote_addr传递客户端真实 IP后端日志、风控、限流
X-Forwarded-For $proxy_add_x_forwarded_for传递完整代理链路上的客户端 IP 列表追踪用户来源、防攻击分析

在实际项目里,Spring Boot 里要拿到 真实客户端 IP,通常要优先取:

  1. X-Forwarded-For 的第一个 IP
  2. 如果没有,就取 X-Real-IP
  3. 否则再 fallback 到 request.getRemoteAddr()
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

思静鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值