https://example.com 443 포트로 접근 시, gateway 에서 nginx 80 포트로 맵핑 해주는 설정.

nginx 에 SPA 관련 설정(vue or react or etc...)을 함

server {
    listen 80;

    location / {
        alias  /usr/share/nginx/html/dist;
        index  index.html index.htm;
        try_files $uri $uri/ /index.html = 404;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html/dist;
    }
}

 

문제점

https://example.com 으로 접속을 시도했는데, http://example.com/ 으로 301(Moved Permanently) redirect 처리됨

https://example.com/ 으로 slash 를 추가해서 요청하면 문제가 없음

해결

nginx config 에 아래 옵션을 추가(nginx 1.11.8 버전 이상)

absolute_redirect off;

수정 후 config

server {
    listen 80;
    absolute_redirect off; # 추가

    location / {
        alias   /usr/share/nginx/html/dist;
        index  index.html index.htm;
        try_files $uri $uri/ /index.html = 404;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html/dist;
    }
}

나는 1.11.8 버전 이상이라 위의 내용으로 해결됐지만, 1.11.8버전 미만인 경우는 아래 링크의 답변을 참고해서 수정해보길..

https://serverfault.com/questions/905657/nginx-redirects-to-http-after-port-in-redirect-off

Posted by 스트라
,