매일 업데이트
2022-11-27 04:10 4 min

Apache 또는 Nginx를 사용하여 하나의 서버 또는 IP에서 여러 도메인 호스트

다수의 웹사이트를 효율적으로 호스팅하기 위해 Apache와 Nginx를 설정하는 방법을 자세히 알아보겠습니다.

클라우드 서버 환경에서 웹사이트를 호스팅하는 것은 공유 호스팅 방식에 비해 훨씬 높은 유연성을 제공합니다. 사용자 정의 설치, 자유로운 확장 및 축소, 그리고 성능과 비용 효율성을 극대화하기 위한 세밀한 구성이 가능합니다.

만약 여러 사업체 웹사이트를 개별적으로 호스팅하고 싶지 않다면, 웹 서버에서 가상 서버 기능을 활용하는 것이 효과적인 대안이 될 수 있습니다. 이러한 시나리오를 구체적으로 살펴볼 것입니다.

가상의 상황으로, 동일한 클라우드 VM을 공유하며 두 개의 웹사이트를 운영하려 한다고 가정해 보겠습니다.

실제 구현에 앞서, 이 방식이 어떻게 동작하는지 먼저 이해하는 것이 중요합니다.

단일 웹 서버 인스턴스에서 여러 웹사이트를 운영하는 기술적 개념을 ‘가상 서버’라고 부릅니다. 이러한 가상 서버는 URL과 함께 구성 파일 내에서 정의됩니다. 특정 URL에 대한 요청이 발생하면, 웹 서버는 해당 URL에 매핑된 문서 루트에서 관련 콘텐츠를 제공합니다.

Apache에서 다중 도메인 호스팅을 위한 가상 호스트 구성

  • Apache HTTP 서버에 접근합니다.
  • Apache 설정 파일 위치로 이동합니다. (일반적으로 /etc/httpd/conf/httpd.conf 경로에서 찾을 수 있습니다.)
  • httpd.conf 파일의 백업 복사본을 만듭니다.
  • 아래 예시와 같이, 두 개의 도메인에 대한 VirtualHost 컨테이너를 생성합니다.
<VirtualHost *:80>
   ServerAdmin [email protected]
   DocumentRoot /opt/htdocs/lab
   ServerName lab.koreantech.org.com
   ErrorLog logs/lab.koreantech.org.com-error_log
   CustomLog logs/lab.koreantech.org.com-access_log common
</VirtualHost>

<VirtualHost *:80>
   ServerAdmin [email protected]
   DocumentRoot /opt/htdocs/gf-dev
   ServerName gf.dev
   ErrorLog logs/gf.dev-error_log
   CustomLog logs/gf.dev-access_log common
</VirtualHost>

참고: ServerAdmin, DocumentRoot, ServerName, ErrorLog, CustomLog 값은 실제 요구 사항에 맞게 수정해야 합니다.

  • Apache HTTP 서버를 재시작하고, 두 개의 URL이 모두 제대로 작동하는지 확인합니다.

Nginx에서 다중 도메인 호스팅을 위한 가상 호스트 구성

  • Nginx 서버에 접속합니다.
  • Nginx가 설치된 위치로 이동합니다. (기본 설치 경로는 /etc/nginx/입니다.)

Nginx 설정은 여러 방식으로 구성할 수 있습니다. nginx.conf 파일을 직접 수정하거나, 별도의 사용자 정의 파일을 사용할 수도 있습니다. 또한, conf.d 폴더 내에 custom.conf 파일을 새로 생성하여 설정할 수도 있습니다. 가장 편리한 방법을 선택하고, 기존 파일을 수정하는 경우에는 반드시 백업을 먼저 수행해야 합니다.

  • 다음과 같이 두 개의 URL에 대한 서버 블록을 구성합니다.
server {
    listen 80;
    root /opt/htdocs/lab;
    index index.html index.htm;
    server_name lab.koreantech.org.com;
    location / {
        try_files $uri $uri/ =404;
    }
}

server {
    listen 80;
    root /opt/htdocs/gf-dev;
    index index.html index.htm;
    server_name gf.dev;
    location / {
        try_files $uri $uri/ =404;
    }
}

참고: root 및 server_name 값은 실제 환경에 맞춰 수정해야 합니다.

  • Nginx 서버를 재시작하고, 두 개의 URL이 정상적으로 작동하는지 확인합니다.

서버 IP 주소에 올바르게 매핑되도록 URL의 DNS 레코드를 업데이트하는 것을 잊지 마십시오. 모든 설정이 완료되면, 위의 구성에 따라 웹사이트에 정상적으로 접속할 수 있어야 합니다.

결론

본 가이드는 Apache 또는 Nginx와 같은 단일 웹 서버 인스턴스에서 여러 개의 도메인을 호스팅하는 방법을 간략하게 설명했습니다. 웹사이트가 정상적으로 운영된 후에는 보안 취약점에 대한 테스트를 실시하는 것을 잊지 마십시오.

이 글이 유익하셨나요? 그렇다면 이 정보를 다른 사람들과 공유해보시는 것은 어떨까요?

저자
Korea

기술 트렌드와 실용적인 팁을 전하는 लेखक입니다.