반응형
Spring Boot 2.2.0에서의 x-forwarded 헤더에 대처하는 방법(역프록시 배후에 있는 Spring Web MVC)
Spring Web MVC를 사용한Spring Boot 2.2.0 어플리케이션이 리버스 프록시 뒤에서 실행되고 있습니다.봄은 어떻게 적절하게 대처할 수 있는가?X-Forwarded-{Prefix,Host,Proto}
- 서버에 대한 실제 요청을 인식할 수 없습니다.
Spring Boot <= 2.1.x에서는ForwardedHeaderFilter
Spring Boot 2.2.0 이후로는 안 해도 돼요.추가만 하면 됩니다.server.forward-headers-strategy=NATIVE
또는server.forward-headers-strategy=FRAMEWORK
고객님께application.properties
- 파일.
NATIVE
servlet 컨테이너(예: 언더토우, tomcat)가 이 문제를 해결하고 있는 것을 의미합니다.x-forwarded-*
- 대부분의 경우 정상입니다.의지하고 있는 경우X-Forwarded-Prefix
필요이상으로FRAMEWORK
하도록request.getContextPath()
올바르게 설정되어 있습니다.
예:
- 브라우저에 사용자 입력:
https://mydomain.tld/my-microservice/actuator
- 마이크로 서비스 "my-microservice"(예: 사용자 서비스)가 요청을 처리합니다. localhost: 8080에서 실행됩니다.
reverse-display는 다음과 같이 요구를 전송합니다.
// Forwarded-Request from Reverse Proxy to your microservice GET http://localhost:8080/actuator/ X-Forwarded-Host: mydomain.tld X-Forwarded-Proto: https X-Forwarded-Prefix: /my-microservice
Http ServletRequest에 디버깅하면 다음과 같은 결과가 됩니다.
request.getRequestURL(): "https://mydomain.tld/my-microservice/actuator/"
request.getScheme(): "https"
request.getContextPath(): "/my-microservice"
new UrlPathHelper().getPathWithinApplication(request): "/actuator"
언급URL : https://stackoverflow.com/questions/59126518/how-to-cope-with-x-forwarded-headers-in-spring-boot-2-2-0-spring-web-mvc-behin
반응형
'programing' 카테고리의 다른 글
변수가 angularjs 약속인지 알 수 있는 방법이 있나요? (0) | 2023.03.26 |
---|---|
PHP를 사용하여 JSON POST 읽기 (0) | 2023.03.26 |
Angular 서비스가 상태를 가져야 합니까? (0) | 2023.03.21 |
아이폰의 JSON 및 코어 데이터 (0) | 2023.03.21 |
React에 내장된 프로덕션과 개발의 차이점JS (0) | 2023.03.21 |