로드 밸런서 뒤의 서버에서 SSL 오프로드를 어떻게 감지할 수 있습니까?

로드 밸런서 뒤의 서버에서 SSL 오프로드를 어떻게 감지할 수 있습니까?

프로덕션 환경에서는 SSL이 로드 밸런서로 오프로드됩니다. 이는 서버의 CPU 부하를 줄이기 위해 수행되었습니다.

대부분의 경우 이것은 완벽하게 괜찮지만 이제 서버가 SSL을 통해 페이지를 제공하는지 여부를 인식해야 합니다.

이를 수행하는 좋은 방법은 무엇입니까? 단, SSL 오프로드를 그대로 유지합니까?

답변1

구성표가 포함된 백엔드 서버로 전송된 헤더를 추가할 수 있습니다.

예를 들어 NGINX를 사용하면 다음과 같은 헤더를 백엔드 프록시 서버에 보냅니다.$ 방식변하기 쉬운,

proxy_set_header Scheme $scheme;

그런 다음 백엔드 애플리케이션에서 헤더를 얻을 수 있습니다.

if ( this.request.getheader('Scheme') is 'http' ) {
    this.response.send('HTTP!')
} otherwise ( this.request.getheader('Scheme') is 'https' ) {
    this.response.send('HTTPS!')
}

어떤 로드 밸런서를 사용하고 있나요? 대부분의 소프트웨어에서 비슷한 작업을 수행할 수 있는 방법이 있을 것이라고 확신합니다. 저는 우연히 NGINX를 가장 잘 알고 있습니다.

관련 정보