현재 http://www.example.org 및 https://www.example.org 모두를 제공하는 ELB가 있습니다 .
http://www.example.org를 가리키는 모든 요청 이 https://www.example.org 로 리디렉션 되도록 설정하고 싶습니다 .
ELB는 다음을 사용하여 https 요청을 http 요청으로 보냅니다.
server {
listen 80;
server_name www.example.org;
rewrite ^ https://$server_name$request_uri? permanent;
}
https://www.example.org에 대한 요청 은 여전히 nginx의 포트 80으로 보내지기 때문에 작동하지 않습니다 .
나는 그것을 다음과 같이 다시 쓸 수 있다는 것을 알고있다.
server {
listen 80;
server_name www.example.org;
if ($http_x_forwarded_proto != "https") {
rewrite ^(.*)$ https://$server_name$1 permanent;
}
}
그러나 내가 읽은 모든 내용은 if
nginx 구성 내에서 모든 비용을 피해야한다고 말 했으며 이는 모든 단일 요청에 해당됩니다. 또한 이는 상태 확인을 위해 별도의 별도 구성을 설정해야 함을 의미합니다 ( "... 설명 :"… ELB 뒤에있는 경우 ELB가 HTTPS 엔드 포인트 역할을하고 서버로 HTTP 트래픽 만 보내는 경우) ELB에 필요한 상태 점검을 위해 HTTP 200 OK 응답으로 응답하는 기능을 중단하십시오 ").
nginx 구성 대신 웹 응용 프로그램 코드에 로그인을 고려하는 것을 고려하고 있습니다 (이 질문의 목적을 위해 Django 기반 응용 프로그램이라고 가정 해 봅시다). if
의 구성.