使用Spring Boot <= 2.1.x,您必须提供
ForwardedHeaderFilter-Bean。从Spring Boot
2.2.0开始,您不再需要这样做。只需添加
server.forward-headers-strategy=NATIVE或
server.forward-headers-strategy=frameWORK到您的
application.properties-file。
NATIVE表示Servlet容器(例如undertow,tomcat)正在解析
x-forwarded-*-header,在大多数情况下都可以。如果依靠
X-Forwarded-Prefix比你必须使用
frameWORK,以便
request.getContextPath()设置正确。
例:
- 用户输入浏览器:
https://mydomain.tld/my-microservice/actuator
- 微服务“我的微服务”(例如用户服务)应处理该请求;它在localhost:8080上运行
- 反向代理转发请求是这样的:
// Forwarded-Request from Reverse Proxy to your microserviceGET http://localhost:8080/actuator/X-Forwarded-Host: mydomain.tldX-Forwarded-Proto: httpsX-Forwarded-Prefix: /my-microservice
调试到HttpServletRequest中将导致:
request.getRequestURL(): "https://mydomain.tld/my-microservice/actuator/"request.getScheme(): "https"request.getContextPath(): "/my-microservice"new UrlPathHelper().getPathWithinApplication(request): "/actuator"
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)