Swagger Server URL이 http로 뜰 때
등록일: 2025. 7. 14. 0:41
1. ForwardedHeaderFilter 등록
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.filter.ForwardedHeaderFilter;
@Configuration
public class WebConfig {
@Bean
public ForwardedHeaderFilter forwardedHeaderFilter() {
return new ForwardedHeaderFilter();
}
}
2. Nginx에서 X-Forwarded-* 헤더 전달 설정
location / {
proxy_pass http://localhost:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
특히 X-Forwarded-Proto $scheme 이 중요함.
이걸 통해 Spring Boot가 원래 요청이 HTTP인지 HTTPS인지 알 수 있게 됨.
3. (선택) Swagger OpenAPI 강제 설정
springdoc:
swagger-ui:
use-root-path: true
default-produces-media-type: application/json
default-consumes-media-type: application/json
show-actuator: true
api-docs:
enabled: true
path: /v3/api-docs
swagger-ui:
path: /swagger-ui.html
urls:
- name: Default
url: /v3/api-docs
# 이걸 명시적으로 지정해버리면 URL 고정 가능
# 하지만 권장되는 방법은 아님
server-url: [https://your-domain.com](https://your-domain.com)