엔진엑스 [Nginx] 루트 폴더 설정하기 및 가상도메인 설정

이 글에서 이어집니다. 만약 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 파일

기본적으로 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.orgserver 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 인증서 발급 받는 방법을 알려드리겠습니다.

감사합니다 !

다음글 보기
5 1 vote
Article Rating
Subscribe
Notify of
guest

3 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
극곰
극곰
2 years ago

안녕하세요 192.168.0.*** 로 접속은 성공하는데 이 상태에서
server_name 을 본문처럼 설정하면 blog1.ifixcomputer.org
서브도메인은 어떻게 접속하면 되나요 ??

WSL
WSL
1 year ago

새로만든 conf 파일 적용 어떻게 하나요?
만들어도 자동으로 인식 안하는 것 같은데..
sudo nginx -t 눌러도 /nginx/nginx.conf test failed 나와요..