当前位置: 代码网 > it编程>数据库>Oracle > Nginx 作为反向代理时设置的请求头

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

2026年02月09日 Oracle 我要评论
这三个参数是 nginx 作为反向代理时设置的请求头,目的是把真实的客户端信息传递给后端应用(tomcat、spring boot、node.js 等)。location /api {

这三个参数是 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()

到此这篇关于nginx 作为反向代理时设置的请求头的文章就介绍到这了,更多相关nginx 反向代理设置的请求头内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2026  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com