2.2. 다른 도메인에 다른 콘텐츠를 제공하는 웹 서버로 NGINX 구성


기본적으로 NGINX는 서버의 IP 주소와 연결된 모든 도메인 이름에 대해 클라이언트에 동일한 콘텐츠를 제공하는 웹 서버 역할을 합니다. 다음 절차에서는 NGINX를 구성하는 방법을 설명합니다.

  • /var/www/example.com/ 디렉터리의 콘텐츠를 사용하여 example.com도메인에 요청을 처리하는 방법
  • /var/www/example.net/ 디렉터리의 콘텐츠를 사용하여 example.net 도메인에 요청을 제공하는 방법
  • 다른 모든 요청(예: 서버의 IP 주소 또는 서버의 IP 주소와 연관된 다른 도메인)에 /usr/share/nginx/html/ 대한 디렉터리의 콘텐츠를 제공하는 방법

사전 요구 사항

  • NGINX가 설치됨
  • 클라이언트 및 웹 서버는 example.comexample.net 도메인을 웹 서버의 IP 주소로 확인합니다.

    이러한 항목을 DNS 서버에 수동으로 추가해야 합니다.

프로세스

  1. /etc/nginx/nginx.conf 파일을 편집합니다.

    1. 기본적으로 /etc/nginx/nginx.conf 파일에는 catch-all 구성이 이미 포함되어 있습니다. 구성에서 이 부분을 삭제한 경우 /etc/nginx/nginx.conf 파일의 http 블록에 다음 server 블록을 다시 추가합니다.

      server {
          listen       80 default_server;
          listen       [::]:80 default_server;
          server_name  _;
          root         /usr/share/nginx/html;
      }

      이러한 설정은 다음을 구성합니다.

      • listen 지시문은 서비스에서 수신 대기하는 IP 주소와 포트를 정의합니다. 이 경우 NGINX는 모든 IPv4 및 IPv6 주소의 포트 80에서 수신 대기합니다. default_server 매개 변수는 NGINX가 이 server 블록을 IP 주소 및 포트와 일치하는 요청의 기본값으로 사용함을 나타냅니다.
      • server_name 매개 변수는 이 server 블록을 담당하는 호스트 이름을 정의합니다. server_name_로 설정하여 이 server 블록의 모든 호스트 이름을 수락하도록 NGINX를 구성합니다.
      • root 지시문은 이 server 블록의 웹 콘텐츠 경로를 설정합니다.
    2. example.com 도메인에 대한 유사한 server 블록을 http 블록에 추가합니다.

      server {
          server_name  example.com;
          root         /var/www/example.com/;
          access_log   /var/log/nginx/example.com/access.log;
          error_log    /var/log/nginx/example.com/error.log;
      }
      • access_log 지시문은 이 도메인에 대한 별도의 액세스 로그 파일을 정의합니다.
      • error_log 지시문은 이 도메인에 대한 별도의 오류 로그 파일을 정의합니다.
    3. example.net 도메인에 대한 유사한 server 블록을 http 블록에 추가합니다.

      server {
          server_name  example.net;
          root         /var/www/example.net/;
          access_log   /var/log/nginx/example.net/access.log;
          error_log    /var/log/nginx/example.net/error.log;
      }
  2. 두 도메인의 root 디렉터리를 생성합니다.

    # mkdir -p /var/www/example.com/
    # mkdir -p /var/www/example.net/
  3. 두 root 디렉터리에 httpd_sys_content_t 컨텍스트를 설정합니다.

    # semanage fcontext -a -t httpd_sys_content_t "/var/www/example.com(/.*)?"
    # restorecon -Rv /var/www/example.com/
    # semanage fcontext -a -t httpd_sys_content_t "/var/www/example.net(/.\*)?"
    # restorecon -Rv /var/www/example.net/

    이러한 명령은 /var/www/example.com//var/www/example.net/ 디렉터리에 httpd_sys_content_t 컨텍스트를 설정합니다.

    restorecon 명령을 실행하려면 policycoreutils-python-utils 패키지를 설치해야 합니다.

  4. 두 도메인의 로그 디렉터리를 생성합니다.

    # mkdir /var/log/nginx/example.com/
    # mkdir /var/log/nginx/example.net/
  5. nginx 서비스를 다시 시작합니다.

    # systemctl restart nginx

검증

  1. 각 가상 호스트의 문서 루트에 다른 예제 파일을 생성합니다.

    # echo "Content for example.com" > /var/www/example.com/index.html
    # echo "Content for example.net" > /var/www/example.net/index.html
    # echo "Catch All content" > /usr/share/nginx/html/index.html
  2. 브라우저를 사용하고 http://example.com에 연결합니다. 웹 서버는 /var/www/example.com/index.html 파일의 예제 콘텐츠를 표시합니다.
  3. 브라우저를 사용하고 http://example.net에 연결합니다. 웹 서버는 /var/www/example.net/index.html 파일의 예제 콘텐츠를 표시합니다.
  4. 브라우저를 사용하고 http://IP_address_of_the_server 에 연결합니다. 웹 서버는 /usr/share/nginx/html/index.html 파일의 예제 콘텐츠를 표시합니다.
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2026 Red Hat
맨 위로 이동