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