이 글에서 이어집니다. 만약 nginx 설치법을 익히지 않으신 분들께는 옆의 링크를 타고 들어가 엔진엑스를 설치하고 이 설명을 봐주세요! | 엔진엑스 [Nginx] 로 5분안에 웹서버 만들어서 외부에 공개하기! |
---|
저번시간에는 웹서버를 구축하여 사이트의 index 페이지를 변경하는것까지 하였습니다.
이번시간에는 “루트폴더” 및 “가상도메인” 설정을 보시는 여러분들과 같이 해보겠습니다.
여기서 가상도메인은 기본도메인과는 전혀다른 도메인으로 한개의 웹서버에서 다수의 웹서버가 있는 것처럼 다른 페이지를 보여줄 수 있는 기능입니다.
우선 가상도메인을 설정하려면, /etc/nginx/sites-available/ 안에 있는 conf 파일을 수정해줘야 됩니다.
(Ubuntu 20.04 기준)
cd /etc/nginx/sites-available/
(CentOS 7 기준)
cd /etc/nginx/conf.d/
기본적으로 Default 파일이 있지만, 이 파일은 따로 건들지 않고 conf 파일을 새로 하나 만들겠습니다.
sudo touch my_blog.conf 를 입력하여 공 conf 파일을 생성해 줍니다.
(저는 my_blog.conf 라 하였지만 구별하기 쉽게 설정하는것이 좋습니다. )
이제 이 파일을 수정하겠습니다. sudo nano ./my_blog.conf (nano 편집가가 없으면 vi) 입력후 엔터를 누릅니다.
저는 아래 예시처럼 수정해 주었습니다.
server {
listen 80;
server_name blog1.ifixcomputer.org ;
root /var/www/html/myblog ;
index index.html;
}
여기서 간단히 설명드리자면 ,
listen 80 OR 443 http2 ssl | 말 그대로 이것을 “듣고 있다” 라고 이해하시면 될 거 같습니다. 만약 listen 80 이라고 입력할 시 https:// 프로토콜을 이용하여 이 페이지를 로드 할 것이라는 것이고 listen 443 ssl 로 입력할 시 https:// 프로토콜로 들어오면 이 페이지를 로드 할 것이라는 것입니다. https:// 프로토콜을 사용 시 반드시 SSL 인증서가 있어야 합니다. (이 SSL 인증서를 발급 받을수 있는 곳인 “Lets Encrypt” 는 나중에 SSL 인증서 받는 설명을 따로 작성하겠습니다.) |
server name blog2.ifixcomputer.org | server name 에는 “요 도메인으로 들어오면 이 conf 파일에 써있는 곳으로 보낼꺼야~” 라고 하는 곳입니다. 여기에 한칸 띄우고 다른 도메인을 입력하면 “이 n개 도메인은 모두 이 conf 파일에 써있는 곳으로 보낼꺼야~” 요런식이 됩니다. |
root /웹 파일 경로 | root /웹파일경로 를 적는 곳입니다. |
index index.html root.html | 여기에 가상도메인으로 들어오면 보여줄 파일을 적는 곳입니다. 예시처럼 2개 또는 그 이상의 파일을 적는 이유는 index.html 이 없을시에 root.html 로 대체해서 보여주겠다는 소리입니다. 만약 root 파일도 없다면, 404 Not Found 가 표시됩니다. |
수정이 끝났으면 Ctrl + s 를 눌러 저장 후 Ctrl + x 를 눌러 빠져나옵니다. (nano editer 기준 vi 는 Esc -> :wq )
이제 이 설정을 Enabled 시켜줘야겠죠? 아래의 예시를 참고해 주세요 🙂
sudo ln -s /etc/nginx/sites-avablie/my_blog.conf /etc/nginx/sites-enabled/
바로가기를 생성 후 sudo nginx -t 를 입력하여 이 conf 파일이 구문에 이상이 없는지 체크합니다.
(conf 설정을 변경하면 꼭 한번씩 체크 해주시는 것을 추천드립니다.) OK 표시가 뜨면
sudo service nginx reload 를 입력하여 엔진엑스 서비스를 재시동 해줍니다.
이제 루트 디랙토리를 설정해 보겠습니다. 아까 전에 conf 설정파일 대로 저는
/var/www/html/myblog 안에 index파일을 생성하겠습니다.
sudo mkdir ./myblog (디랙토리 생성)
cd ./myblog(방금만든 폴더로 이동)
sudo touch index.html (파일생성)
저는 제 서브도메인으로 접속할 시 Hello My blog Page 라고 써있는 페이지를 띄우겠습니다.
<!DOCTYPE html> <html lang="kr"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Hello Nginx!</title> </head> <body> <h1>Hello My blog Page</h1> </body> </html>
페이지를 생성했으면 이제 아까 제가 설정한 도메인으로 접속을 시도해 보겠습니다.
페이지가 설정한대로 표시됩니다.
이렇게 가상도메인 셋팅과 웹 루트폴더 설정에 대해서 설명드렸습니다.
이 글에서 부족한 점이나 틀린부분은 언재든지 댓글에 써주시기 바랍니다.
다음시간에는 엔진엑스 https 적용 및 Let’s Encrypt 인증서 발급 받는 방법을 알려드리겠습니다.
감사합니다 !
안녕하세요 192.168.0.*** 로 접속은 성공하는데 이 상태에서
server_name 을 본문처럼 설정하면 blog1.ifixcomputer.org
서브도메인은 어떻게 접속하면 되나요 ??
안녕하세요. 엔진엑스 설정에서 가상도메인 설정 +도매인 구매처에서 가상 도메인을 설정할 수 있습니다!
새로만든 conf 파일 적용 어떻게 하나요?
만들어도 자동으로 인식 안하는 것 같은데..
sudo nginx -t 눌러도 /nginx/nginx.conf test failed 나와요..