웹사이트 검색

CentOS/RHEL 8에서 Nginx 서버 블록(가상 호스트) 설정


Nginx 서버 블록은 Apache 가상 호스트와 동일하며 서버에서 두 개 이상의 도메인이나 웹사이트를 호스팅할 수 있게 해줍니다.

이 문서에서는 CentOS 8RHEL 8 Linux에서 Nginx 서버 블록(가상 호스트)을 설정하는 방법을 알아봅니다.

전제 조건:

  • 도메인의 A 레코드. 간단히 말해서 A 레코드는 도메인 이름이 서버(이 경우 Nginx 웹 서버)의 공용 IP를 가리키는 DNS 항목을 나타냅니다. 이 가이드 전체에서는 도메인 이름 crazytechgeek.info를 사용합니다.
  • CentOS 8 또는 RHEL 8 인스턴스에 설치된 Nginx 서버 또는 LEMP 스택.
  • Sudo 권한이 있는 로그인 사용자입니다.

시작하자!

1단계: Nginx 문서 루트 디렉터리 만들기

즉시 호스팅하려는 도메인에 대한 사용자 정의 웹 루트 디렉터리를 만들어야 합니다. 우리의 경우 필요한 모든 상위 디렉토리를 생성하기 위해 mkdir -p 옵션을 사용하여 표시된 대로 디렉토리를 생성합니다.

sudo mkdir -p /var/www/crazytechgeek.info/html

그런 다음 $USER 환경 변수를 사용하여 디렉터리 권한을 할당합니다. 그렇게 할 때 루트 사용자가 아닌 일반 사용자로 로그인했는지 확인하십시오.

sudo chown -R $USER:$USER /var/www/crazytechgeek.info/html

다음으로, 표시된 대로 올바른 디렉터리 권한을 반복적으로 할당합니다.

sudo chmod -R 755 /var/www/crazytechgeek.info/html

2단계: 도메인에 대한 샘플 페이지 만들기

다음으로, 요청이 이루어지면 도메인에서 제공할 사용자 정의 웹 루트 디렉토리 내에 index.html 파일을 생성하겠습니다.

sudo vim /var/www/crazytechgeek.info/html/index.html

파일 내부에 다음 샘플 콘텐츠를 붙여넣습니다.

<html>
    <head>
        <title>Welcome to your_domain!</title>
    </head>
    <body>
  <h1>Awesome! Your Nginx server block is working!</h1>
    </body>
</html>

구성 파일을 저장하고 종료합니다.

3단계: CentOS에서 Nginx 서버 블록 생성

Nginx 웹 서버가 2단계에서 생성한 index.html 파일의 콘텐츠를 제공하려면 적절한 지시문을 사용하여 서버 블록 파일을 생성해야 합니다. 따라서 다음 위치에 새 서버 블록을 생성합니다.

sudo vim /etc/nginx/conf.d/crazytechgeek.info.conf

그런 다음 아래에 나타나는 구성을 붙여넣습니다.

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

        root /var/www/crazytechgeek.info/html;
        index index.html index.htm index.nginx-debian.html;

        server_name crazytechgeek.info www.crazytechgeek.info;

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

		
    access_log /var/log/nginx/crazytechgeek.info.access.log;
    error_log /var/log/nginx/crazytechgeek.info.error.log;

}

완료되면 변경 사항을 저장하고 구성 파일을 종료합니다. 모든 Nginx 구성이 건전하고 오류가 없는지 확인하려면 다음 명령을 실행하십시오.

sudo nginx -t

아래 출력은 진행해도 좋다는 확인을 의미합니다!

마지막으로 Nginx 웹 서버를 다시 시작하고 예상대로 실행되는지 확인합니다.

sudo systemctl restart nginx
sudo systemctl status nginx

4단계: CentOS에서 Nginx 서버 블록 테스트

모든 구성이 완료되었습니다. 남은 유일한 부분은 서버 블록이 이전에 index.html 파일에 정의된 웹 루트 디렉터리의 콘텐츠를 제공하는지 확인하는 것입니다.

이렇게 하려면 브라우저를 열고 다음과 같이 서버의 도메인으로 이동하세요.

http://domain-name

관찰한 바와 같이, 우리의 콘텐츠는 서버 블록에 의해 제공되고 있으며 이는 모든 것이 잘 진행되었음을 분명히 나타냅니다.

5단계: Nginx에 호스팅된 도메인에서 HTTPS 활성화

Lets Encrypt SSL을 사용하여 도메인을 암호화하여 보호 계층을 추가하고 웹 서버에서 들어오고 나가는 트래픽을 보호하는 것을 고려할 수 있습니다.

sudo dnf install certbot python3-certbot-nginx
sudo certbot --nginx

도메인이 HTTPS에서 올바르게 구성되었는지 확인하려면 브라우저에서 https://yourwebsite.com/를 방문하여 URL 표시줄에서 자물쇠 아이콘을 찾으세요.

결론

CentOS 8RHEL 8에서 Nginx 서버 블록을 성공적으로 설정했습니다. 동일한 절차를 사용하여 여러 도메인에 대해 동일한 작업을 반복할 수 있습니다.