서버 블록 설정은 아파치의 가상 호스팅 설정과 흡사하다.
웹 문서 디렉토리
웹 문서 디렉토리 생성
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.com
과www.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