SW/리눅스

Debian 9 : Nginx Server 블록을 설정하는 방법, 예제, 명령어

얇은생각 2021. 1. 30. 07:30
반응형

Nginx 서버 블록을 사용하면 단일 시스템에서 둘 이상의 웹 사이트를 실행할 수 있습니다. 서버 블록을 사용하면 사이트 문서 루트(웹 사이트 파일이 들어 있는 디렉터리)를 지정하고, 각 사이트에 대해 별도의 보안 정책을 만들고, 각 사이트에 대해 서로 다른 SSL 인증서를 사용하는 등의 작업을 수행할 수 있습니다. 

이 튜토리얼에서는 Debian 9에서 Nginx 서버 블록을 설정하는 방법에 대해 설명합니다.

 

 

 

필수 조건

이 튜토리얼을 계속하기 전에 다음 필수 구성 요소를 충족했는지 확인하십시오.

- 공용 서버 IP를 가리키는 도메인 이름입니다. example.com을 이용하겠습니다.

- Nginx가 설치되어 있습니다.

- root 또는 sudo 권한을 가진 사용자로 로그인했습니다.

일부 설명서에는 가상 호스트라고 하는 서버 블록이 나와 있습니다. 가상 호스트는 Apache 용어입니다.

 

 

 

디렉토리 구조 생성

document root는 도메인 이름에 대한 웹 사이트 파일이 저장되고 요청에 응답하여 제공되는 디렉토리입니다. document root는 데비안 서버의 디렉토리일 수 있습니다.

 다음 디렉토리 구조를 사용합니다.

# /var/www/
# ├── domain1.com
# │   └── public_html
# ├── domain2.com
# │   └── public_html
# ├── domain3.com
# │   └── public_html

 

 

/var/www 디렉토리 내의 서버에서 호스트될 각 도메인에 대해 별도의 디렉토리를 작성합니다. 이러한 각 디렉토리 내에 도메인 웹 사이트 파일을 저장할 public_html 디렉토리를 생성합니다.

먼저 도메인 example.com의 루트 디렉토리를 생성합니다.

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

 

 

그런 다음 도메인의 document root 디렉터리에 index.html 파일을 만듭니다.

sudo nano /var/www/example.com/public_html/index.html

 

 

파일을 열고 다음 줄을 붙여넣습니다.

# /var/www/example.com/public_html/index.html

<!DOCTYPE html>
<html lang="en" dir="ltr">
  <head>
    <meta charset="utf-8">
    <title>Welcome to example.com</title>
  </head>
  <body>
    <h1>Success! example.com home page!</h1>
  </body>
</html>

 

 

권한 문제를 방지하려면 도메인 document root 디렉터리의 소유권을 Nginx 사용자(www-data)로 변경하십시오.

sudo chown -R www-data: /var/www/example.com

 

 

 

서버 블록 생성

기본적으로 Debian 시스템에서는 Nginx 서버 블록이 /etc/nginx/sites-enabled/ 디렉토리로 연결되는 심볼 링크를 통해 활성화되는 /etc/nginx/sites-available 디렉토리에 저장됩니다.

선택한 편집기를 열고 다음 서버 블록 파일을 만드십시오.

# /etc/nginx/sites-available/example.com.conf

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

    root /var/www/example.com/public_html;

    index index.html;

    server_name example.com www.example.com;

     access_log /var/log/nginx/example.com.access.log;
     error_log /var/log/nginx/example.com.error.log;

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

 

 

구성 파일의 이름을 원하는 대로 지정할 수 있지만 일반적으로 도메인 이름을 사용하는 것이 가장 좋습니다. 

파일에서 sites-enabled 디렉토리로의 심볼 링크를 만들어 새 서버 블록 파일을 활성화합니다.

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

 

 

 

Nginx 구성에서 올바른 구문을 테스트합니다.

sudo nginx -t

 

 

오류가 없으면 출력은 다음과 같습니다.

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

 

 

Nginx 서비스를 다시 시작하여 변경 내용을 적용합니다.

sudo systemctl restart nginx

 

 

마지막으로 서버 블록이 예상대로 작동하는지 확인하려면 브라우저에서 http://example.com을 열면 다음과 같은 정보가 표시됩니다.

Debian 9 : Nginx Server 블록을 설정하는 방법, 예제, 명령어

 

반응형