如何配置Spring Boot Actuator上下文路径适配Apache反向代理
回答
完全可以实现,两种可行方案,按需选择即可。
方案1:反向代理头适配配置(推荐,无需修改现有服务路径)
这个方案不需要调整Spring Boot应用现有接口路径,仅需补两处配置即可生效:
- 开启Spring Boot的反向代理头识别能力,在应用配置文件中添加对应配置:
若使用application.yml:
若使用server: forward-headers-strategy: frameworkapplication.properties:server.forward-headers-strategy=framework - 调整Apache2代理规则,转发时将代理前缀信息传递给后端服务,将原有代理配置修改为:
ProxyPass /api http://localhost:8080 ProxyPassReverse /api http://localhost:8080 RequestHeader set X-Forwarded-Prefix "/api" ProxyPreserveHost On
配置生效后Spring会自动读取代理传递的前缀值,生成actuator的_links字段时自动拼接/api前缀,所有端点的链接都会自动符合预期格式,无需逐个端点单独配置。
方案2:直接修改服务上下文路径(适合全接口都挂载在/api前缀下的场景)
如果你本来就规划该Spring Boot应用的所有接口都走/api前缀,可以直接修改服务配置,无需额外配置代理头:
在应用配置文件中添加配置:application.yml版本:
server: servlet: context-path: /api
application.properties版本:
server.servlet.context-path=/api
修改后需要同步调整Apache代理规则,将转发目标改为对应路径:
ProxyPass /api http://localhost:8080/api ProxyPassReverse /api http://localhost:8080/api
重启服务和代理后即可获取到正确格式的端点链接。
配置完成后建议清空浏览器缓存再测试,避免旧响应缓存导致验证结果偏差。
内容的提问来源于stack exchange,提问作者membersound
相关产品推荐
相关产品推荐

