Apache HTTP의 SSL을 통해서 Spring Boot로 요청이 호출되는 경우 비정상 동작을 하는 경우가 있습니다. 왜냐하면 Tomcat에서 Client의 정보를 알수가 없기 때문에 Client의 정보를 넘겨주도록 해야 합니다. Spring Boot의 application.properties 파일에 다음을 추가합니다.

# Tomcat 앞쪽에 Proxy나 L4를 두는 경우 요청 정보가 변경될 수 있습니다.
# 예를 들어 10.10.10.10:8080으로 실행을 하더라도 HTTP 클라이언트에서는 example.org로 접근을 해야 하는 경우입니다.
# 따라서 Header에 아래 2개의 헤더값을 추가하도록 하려면 native로 지정합니다. 웹서버 자체에서 이 기능을 지원하도록 설정합니다.
# framework로 설정하면 Spring Boot에서 ForwardedHeaderFilter에서 처리하도록 합니다.
# 추가로 Tomcat의 앞쪽에서 SSL이 종료되는 경우 server.tomcat.redirect-context-root를 False로 설정하도록 하며 
# 이 경우 리다이렉션이 발생하기 전에 X-Forwarded-Proto 헤더를 사용할 수 있게 됩니다.
server.forward-headers-strategy=native

# Remote Client의 Protocol을 남기기 위한 헤더 속성
server.tomcat.remoteip.protocol-header="X-Forwarded-Proto"

# Remote IP를 남기기 위한 헤더 속성
server.tomcat.remoteip.remote-ip-header="X-Forwarded-For"
  • 레이블 없음