Nginx 서버 블록을 사용하면 단일 시스템에서 둘 이상의 웹 사이트를 실행할 수 있습니다. 이 기능은 각 사이트에 대해 사이트 문서 루트(웹 사이트 파일이 들어 있는 디렉터리)를 지정하고, 별도의 보안 정책을 만들고, 다른 SSL 인증서를 사용할 수 있으므로 유용합니다.
이 튜토리얼에서는 CentOS 7에서 Nginx 서버 블록을 설정하는 방법에 대해 설명합니다.
필수 조건
이 튜토리얼을 계속하기 전에 다음 필수 구성 요소를 충족했는지 확인하십시오.
- 공용 서버 IP를 가리키는 도메인 이름입니다. example.com을 이용하겠습니다.
- Nginx가 CentOS 시스템에 설치되어 있습니다.
- root 또는 sudo 권한이 있는 사용자로 로그인했습니다.
일부 설명서에는 가상 호스트라고 하는 서버 블록이 나와 있습니다. 가상 호스트는 Apache 용어입니다.
디렉토리 구조 생성
문서 루트는 도메인 이름에 대한 웹 사이트 파일이 저장되고 요청에 응답하여 제공되는 디렉토리입니다. 원하는 위치에 문서 루트를 설정할 수 있습니다.
다음 디렉토리 구조를 사용합니다.
/var/www/
├── example.com
│ └── public_html
├── example2.com
│ └── public_html
├── example3.com
│ └── public_html
기본적으로 /var/www 디렉토리 내의 서버에서 호스팅할 각 도메인에 대해 별도의 디렉토리를 생성합니다. 이 디렉토리 내에 도메인 문서 루트 디렉토리가 될 public_html 디렉토리를 생성하고 도메인 웹 사이트 파일을 저장합니다.
먼저 도메인 example.com의 루트 디렉토리를 생성해 보겠습니다.
sudo mkdir -p /var/www/example.com/public_html
테스트 목적으로 도메인의 문서 루트 디렉토리 내에 index.html 파일을 작성합니다.
텍스트 편집기를 열고 demoindex.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>
이 예에서는 명령을 sudo 사용자로 실행하며 새로 생성된 파일 및 디렉터리는 루트 사용자가 소유합니다.
권한 문제를 방지하려면 도메인 문서 루트 디렉터리의 소유권을 Nginx 사용자(nginx):
sudo chown -R nginx: /var/www/example.com
서버 블록 생성
Nginx 서버 블록 구성 파일은 .conf로 끝나야 하며 /etc/nginx/conf.d 디렉터리에 저장됩니다.
선택한 편집기를 열고 example.com용 서버 블록 구성 파일을 만듭니다.
sudo nano /etc/nginx/conf.d/example.com.conf
원하는 대로 구성 파일의 이름을 지정할 수 있습니다. 일반적으로 도메인 이름을 사용하는 것이 가장 좋습니다.
다음 코드를 복사하여 파일에 붙여넣습니다.
# /etc/nginx/conf.d/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;
}
}
파일을 저장하고 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을 열면 다음과 같은 정보가 표시됩니다.
'SW > 리눅스' 카테고리의 다른 글
CentOS 7 : PHP Composer 설치, 사용하는 방법, 예제, 명령어 (2) | 2021.01.22 |
---|---|
Debian 9 : MongoDB 설치하는 방법, 예제, 명령어 (0) | 2021.01.21 |
Ubuntu 18.04 : SSH Keys 설정하는 방법, 예제, 명령어 (0) | 2021.01.19 |
Debian 9 : Ruby를 설치하는 방법, 예제, 명령어 (0) | 2021.01.18 |
CentOS 7 : Jenkins 설치하는 방법, 예제, 명령어 (0) | 2021.01.17 |