02. 서버 블록 설정

서버 블록 설정은 아파치의 가상 호스팅 설정과 흡사하다.

웹 문서 디렉토리

웹 문서 디렉토리 생성

www.example.com 주소를 위한 문서 루트 디렉토리를 생성한다.

$ sudo mkdir -p /var/www/com.example.www

웹루트 파일 및 문서를 sudo 사용자 소유권으로 하지 않고 일반 사용자 ham 일반 그룹 spam 권한으로 한다.

$ sudo chown ham:spam /var/www/com.example.www

로그 디렉토리 생성

$ sudo mkdir -p /var/www/com.example.www/logs

웹루트 파일 및 문서를 sudo 사용자 소유권으로 하지 않고 일반 사용자 ham 그리고 웹 그룹 www-data 권한으로 한다.

$ sudo chown ham:www-data /var/www/com.exmaple.www/logs

웹 문서 생성

$ sudo su ham

ham 사용자로 변경하여 HTML 문서를 만든다.

/var/www/com.example.www/index.html 파일을 추가한다.

<html>
    <head>
        <title>example.com</title>
    </head>
    <body>
        <h1>example.com</h1>
    </body>
</html>

서버 블록 설정

사이트 정보 파일 추가

설치 시 존재하는 default 파일을 복사해 com.example.www을 새로 만든다.

$ sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/com.example.www

주석을 제외하면 com.example.www 파일의 내용은 다음과 같다.

server {
        listen 80 default_server;
        listen [::]:80 default_server;

        root /var/www/html;
        index index.html index.htm index.nginx-debian.html;
        server_name _;

        location / {
                try_files $uri $uri/ =404;
        }
}

/etc/nginx/sites-available/com.example.www 파일을 아래와 비슷하게 수정한다.

# www.example.com 서버 설정
#
server {
    listen 80;
    listen [::]:80;

    root /var/www/com.example.www;
    index index.html;
    server_name example.com www.example.com;
    charset     utf-8;

    access_log /var/www/com.example.www/logs/access.log;
    error_log /var/www/com.example.www/logs/error.log;

    location / {
        try_files $uri $uri/ =404;
    }
}
  • 하나의 서버에는 default_server 옵션을 가진 서버 블록은 유일해야 한다.
  • /var/www/com.example.www와 같이 정확한 문서 루트 경로 지정한다.
  • example.comwww.example.com두 주소로 접속할 수 있도록 서버 블록을 설정했다.

서버 블록 등록

$ sudo ln -s /etc/nginx/sites-available/com.example.www /etc/nginx/sites-enabled/

NGINX 재시작

NGINX 설정확인

$ sudo nginx -t

NGINX 재시작

$ sudo systemctl restart nginx

최종 수정일시: 2019-02-14 18:02

blog comments powered by Disqus