server.forward-headers-strategy=framework
是Spring Boot应用配置中的一项设置,它指示Spring Boot框架如何处理反向代理服务器(如Nginx、Apache等)传递过来的头部信息,尤其是那些与协议、主机名、端口相关的头部,这些头部信息对于构建正确的请求上下文非常重要,尤其是在部署到生产环境时。
背景
在使用反向代理时,用户的原始请求首先到达代理服务器,然后代理服务器根据配置将请求转发给后端的应用服务器(如Spring Boot应用)。在这个过程中,代理服务器可能会修改或添加一些HTTP头部,如X-Forwarded-For
(记录客户端IP)、X-Forwarded-Proto
(记录原始请求协议,HTTP或HTTPS)、X-Forwarded-Host
(记录原始请求的主机名)等,以便后端应用能识别到原始请求的细节。
forward-headers-strategy
配置选项
Spring Boot提供了几种处理这些转发头部的策略:
- none: 默认情况下,Spring Boot不处理任何转发头部,这意味着它只依赖于直接接收到的请求信息。
- native: 在Spring Framework 5.2及更高版本中,可以通过设置
forward-headers-strategy=native
来启用对特定头部(如X-Forwarded-Proto
)的原生支持。这要求Java运行时环境(JRE)和Servlet容器支持相应的规范(如RFC 7239)。 - framework: 设置
server.forward-headers-strategy=framework
告诉Spring Boot使用其内部的ForwardedHeaderFilter
来解
发布评论