SW/리눅스

Linux : Ubuntu 20.04 : Nginx Server Blocks 설정 방법, 예제, 명령어

얇은생각 2022. 11. 5. 07:30
반응형

서버 블록은 특정 도메인에 대한 설정을 정의하는 Nginx 지시문으로, 단일 서버에서 둘 이상의 웹 사이트를 실행할 수 있습니다. 각 웹 사이트에 대해 사이트 문서 루트(웹 사이트 파일이 들어 있는 디렉토리)를 설정하고, 별도의 보안 정책을 작성하며, 다른 SSL 인증서를 사용할 수 있습니다.

이 문서는 Ubuntu 20.04에서 Nginx 서버 블록을 설정하는 방법을 설명합니다.

 

 

Linux : Ubuntu 20.04 : Nginx Server Blocks 설정 방법, 예제, 명령어

 

 

필수 구성 요소

계속하기 전에 다음 요구 사항을 충족하는지 확인하십시오.

 

공용 서버 IP를 가리키는 도메인 이름입니다.

Ubuntu 시스템에 Nginx가 설치되어 있습니다.

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

 

일부 문서에서는 "서버 블록"이라는 용어를 "가상 호스트"라고 합니다. 가상 호스트는 Apache 용어입니다.

 

 

 

디렉터리 구조 생성

문서 루트는 도메인 이름의 웹 사이트 파일이 저장되고 요청에 따라 제공되는 디렉토리입니다. 문서 루트를 원하는 위치로 설정할 수 있습니다. 이 예에서는 다음 디렉터리 구조를 사용합니다.

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

 

 

서버에서 호스트되는 각 도메인의 문서 루트는 /var/www/<domain_name>/public_model로 설정됩니다.

도메인에 대한 루트 디렉터리를 만드는 것부터 시작하십시오.

sudo mkdir -p /var/www/domain1.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>

 

 

위의 명령은 sudo 사용자로 실행되므로 새로 생성된 파일 및 디렉토리는 루트가 소유합니다. 권한 문제를 방지하려면 도메인 문서 루트 디렉토리와 디렉토리 내의 모든 파일의 소유권을 Nginx 사용자(www-data)로 변경합니다.

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

 

 

 

서버 블록 생성

Ubuntu 시스템에서 Nginx 서버 블록 구성 파일은 /etc/nginx/sites 사용 가능한 디렉토리에 있습니다. 시작 중에 Nginx가 읽은 /etc/nginx/sites 지원 디렉터리에 심볼릭 링크를 만들어 활성화할 수 있습니다.

텍스트 편집기를 열고 다음 서버 블록 파일을 작성합니다.

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

server {
    listen 80;

    server_name example.com www.example.com;

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

    index index.html;

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

 

 

server_name: 입니다. 이 서버 블록 구성에 대해 일치해야 하는 도메인입니다.

root: Nginx가 도메인 파일에 서비스를 제공할 디렉터리입니다.

access_log, error_log: 로그 파일의 위치를 지정합니다.

 

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

새 서버 블록 파일을 사용하려면 파일에서 Nginx가 시작하는 동안 읽은 사이트 사용 디렉토리에 대한 심볼 링크를 만드십시오.

sudo ln -s /etc/nginx/sites-available/example.com /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을 열면 다음과 같이 표시됩니다.

Nginx 서버 블록을 생성하고 단일 Ubuntu 서버에서 여러 도메인을 호스팅하는 방법을 보여드렸습니다. 위에 설명된 단계를 반복하고 모든 도메인에 대해 추가 서버 블록을 작성할 수 있습니다.

반응형