[AWS] ELB + http to https + Nginx 설정

ITWeb/개발일반 2017. 2. 2. 10:12

요즘 대부분의 서비스들이 http 를 제거 하고 https 로 서비스 하기 시작했습니다.

AWS 에서 제공하는 SSL 을 이용해서 ELB 에 구성하신 분들의 경우 대부분 아래와 같이 되어 있을 것 같은데요.


http://service    -> elb:80   -> ec2:80

https://service  -> elb:443  -> ec2:80


이와 같이 되어 있다 보니 개별 ec2 에서는 모두 listen 80 만 하게 됩니다.

그래서 client 에서 http 로 들어 왔는지 https 로 들어 왔는지 확인이 필요 한데요.

이 경우 아래와 같은 변수들을 활용해서 설정을 하시면 됩니다.


[참고문서]

http://docs.aws.amazon.com/elasticloadbalancing/latest/classic/x-forwarded-headers.html


[X-Forwarded Headers]

X-Forwarded-For

X-Forwarded-Proto

X-Forwarded-Port


[Nginx 설정]

server {

  listen       80;

  server_name  localhost;


  if ($http_x_forwarded_proto = 'http') {

    return 301 https://$server_name$request_uri;

  }

}


참고 용이니 실 서비스에 적용 시 충분한 테스트 후 적용하시기 바랍니다.

: