Category
Table of Contents
1. http? https?
http는 IT와 관련없는 사람일지라도 본 적이 있을 정도의 필수적인 프로토콜이다.
웹에 있어 없어서는 안될 프로토콜이지만 그 자체로는 보안이 되지 않으므로, 흔히 말하는 인증서를 붙여 안전한 통신이 가능하도록 하는데 이 때 쓰는 프로토콜을 https라고 한다.
이번에는 nginx를 통해 서버 접근 시 http를 사용했다면, https로 강제 리다이렉트하도록 설정하는 내용을 포스팅하려고 한다.
2. nginx설정
/etc/nginx/nginx.conf를 편집한다.
kello.com으로 끝나는 url의 80포트로 접근했다면 무조건 https로 포워딩하도록 했다. ex) gitlab.kello.com
http의 기본 포트는 80, https의 기본 포트는 443이므로 가능한 설정이다.
301은 리다이렉트를 의미하는 http상태코드이다.
http {
server {
listen 80;
server_name *.kello.com;
return 301 https://$host$request_uri;
}
}
3. 유효성 검사
nginx의 설정 파일이 유효한 상태여야 정상 작동되므로 재기동 전 유효성 검사를 실행한다.
syntax is ok로 나타나면 정상적으로 설정된 것이다.
$ nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
4. 재기동
nginx서버를 리로드하거나 재기동해야 변경한 설정이 적용된다.
reload는 기존 커넥션을 종료하지 않으면서 변경된 설정을 적용하고, restart는 기존 커넥션을 종료하고 nginx서버를 재시작하여 설정을 적용한다는 차이점이 있다.
$ systemctl reload nginx
$ systemctl restart nginx