CentOS/RHEL 8에서 Nginx 서버 블록(가상 호스트) 설정
Nginx 서버 블록은 Apache 가상 호스트와 동일하며 서버에서 두 개 이상의 도메인이나 웹사이트를 호스팅할 수 있게 해줍니다.
이 문서에서는 CentOS 8 및 RHEL 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 8 및 RHEL 8에서 Nginx 서버 블록을 성공적으로 설정했습니다. 동일한 절차를 사용하여 여러 도메인에 대해 동일한 작업을 반복할 수 있습니다.