※ [ 서버 ] 작업24, 도메인에서 www 지우기, nginx url rewrite
tistory.com과 www.tistory.com은 엄연히 다른 것이다.
- www를 붙이면 안되는 주소인데 무의식중에 사람들이 www를 붙이는 경우가 종종있다.
- www를 붙이면 안되는 주소에 www를 입력받았을 때, 접속하려고 했던 url로 연결해주는 작업을
nginx url rewrite 라고 한다.
1. nginx 설정 파일로 이동
- sudo vim /etc/nginx/conf.d/vhost.conf 명령어 입력
2. 설정 변경
- 아래 코드 추가
server {
server_name www.서비스명.도메인(***.***);
rewrite ^/(.*)$ https://서비스명.도메인(***.***)/$1 permanent;
}
- :wq! 명령어 입력
3. nginx 재시작
- sudo systemctl restart nginx 명령어 입력
- nginx 설정을 변경해주었을 때에는 필히 nginx를 재시작해야 웨브라우저 오류가 없다.
- 혹시 sudo systemctl restart nginx 명령어를 입력했는데, 실패하는 경우에는
- 직전에 수정해준 설정에 오타가 없는지 확인해본다.
- restart nginx를 했더니 오류가 발생해서 직전 작업을 지워주고 다시 재시작을 했더니 오류가 발생하지 않음
- 그래서 혹시 오타가 있나하고 봤더니 나의 실수로 오타 발생. .. . . .... ...
※ www.tistory.com 이라고 입력하면 http:// 이다.
- 3번까지의 작업에서는 www.서비스명.도메인이라고 입력하면
https://서비스명.도메인 으로 안내를 잘 해준다.
- 그러나 https://www.서비스명.도메인으로 접속하면 접속되지 않는다.
4. certbot 설치
- sudo certbot --nginx 명령어 입력
- 기존에 설치한거 외로 sudo vim /etc/nginx/conf.d/vhost.conf 에 추가한 url 번호를 선택해준다.
- 한꺼번에 여러개 선택 가능.
5. 설치 종료
6. https://www.서비스명.도메인 접속
- sudo systemctl restart nginx nginx 재시작 명령어를 입력하지 않아도 접속이 잘 된다.
- 접속 성공
- https://서비스명.도메인으로 연결을 잘 해준다.
※ 연결 과정
위의 순서대로 연결이 되는 것.
1번.
if 만약에 $host = www.서비스명.도메인으로 들어온다면
return 301(redirect, rewrite 의미) https://$host 그대로 return 하겠다.
- 바뀐 것
- 아무것도 입력하지 않으면 http:// 가 기본
- http:// 가 https://로 변경
2번.
여기에서 https://www.서비스명.도메인이 https://서비스명.도메인으로 연결되는 듯....
끝.
'Server, centOS 7 외' 카테고리의 다른 글
[ 서버 ] 비스프링 메이븐 의존성관리 도입 (0) | 2020.09.20 |
---|---|
[ 서버 ] centOS7, 스프링부트, 로그를 파일로 저장하는 설정 켜기 (0) | 2020.09.20 |
[ 서버 ] 작업23, CentOS7, 대용량 파일 업로드시, nginx 413 Request Entity Too Large 오류 해결법 (0) | 2020.09.20 |
[ 서버 ] 리눅스 - CentOS 7, 서블릿, 스프링 호스팅, 빠른버전 영상 자료(실행 방법, 순서) (0) | 2020.09.19 |
[ 서버 ] 리눅스 - CentOS 7, 서블릿, 스프링 호스팅, 빠른버전 (0) | 2020.09.19 |