웹사이트 검색

Linux에서 Apache 이름 기반 및 IP 기반 가상 호스트 생성


가상 호스팅은 여러 웹사이트나 도메인을 단일 서버에 호스팅하는 개념으로, 기업이나 조직의 리소스 오버헤드와 운영 비용을 줄이기 위해 수행됩니다.

Apache 웹 서버는 시스템 관리자가 각 웹사이트에 대한 가상 호스트를 쉽게 구성할 수 있도록 하여 여러 사이트 호스팅을 단순화합니다. 가상 호스팅은 IP 기반이거나 이름 기반일 수 있습니다.

이 튜토리얼에서는 Fedora, CentOS Stream, Rocky Linux 및 <와 같은 RHEL 기반 배포판에서 가상 호스팅을 설정하는 방법을 살펴봅니다. Strong>Alma Linux는 Linux에서 IP 기반 및 이름 기반 가상 호스트를 모두 사용합니다.

공유 웹 호스팅리셀러 웹 호스팅의 개념은 주로 Apache의 이러한 기능을 기반으로 합니다.

Linux의 Apache 가상 호스팅 유형

Apache에서는 두 가지 유형의 가상 호스팅을 사용할 수 있습니다.

이름 기반 가상 호스팅

이러한 유형의 호스팅에서는 단일 IP 주소만 사용하여 여러 도메인이나 웹사이트를 단일 서버에서 호스팅할 수 있습니다. 간단히 말해서 모든 도메인은 단일 IP 주소를 공유합니다. 도메인 이름을 IP 주소에 매핑한 다음 각 도메인 이름에 대해 Apache 가상 호스트를 구성하기만 하면 되므로 구성하기 가장 쉬운 가상 호스팅 유형입니다.

IP 기반 가상 호스팅

IP 기반 가상 호스팅은 각 도메인에 고유한 IP 주소가 할당되는 곳입니다. 이러한 IP 주소는 여러 NIC 카드 또는 단일 NIC 카드를 사용하여 서버에 연결할 수 있습니다.

테스트 환경

  • OSFedora 34
  • 애플리케이션Apache 웹 서버
  • IP 주소192.168.2.105
  • IP 주소192.168.2.106
  • 도메인www.mydomain1.com
  • 도메인www.mydomain2.com

IP 기반 및 이름 기반 Apache 가상 호스트를 설정하는 방법

시작하기 전에 표시된 대로 dnf 명령을 사용하여 Apache 웹 서버가 시스템에 설치되어 있는지 확인하세요.

sudo dnf install httpd -y

이름 기반 가상 호스팅 설정

이름 기반 가상 호스팅 설정의 첫 번째 단계는 /etc/hosts 파일에서 도메인 이름 확인을 설정하는 것입니다. 따라서 루트 사용자로 다음 명령을 실행하여 호스트의 IP 주소를 가리키는 도메인 이름 항목을 추가하십시오.

echo '192.168.2.105 www.mydomain1.com' >> /etc/hosts
echo '192.168.2.105 www.mydomain2.com' >> /etc/hosts

다음 단계는 웹 사이트 파일을 포함할 디렉터리를 만드는 것입니다. 따라서 Apache 구성의 /var/www/html 폴더인 문서 루트에 가상 호스트에 대한 두 개의 디렉터리를 생성합니다.

sudo mkdir /var/www/html/mydomain1.com/
sudo mkdir /var/www/html/mydomain2.com/

다음 단계는 모든 도메인 이름에 대해 들어오는 Apache 웹 서버 요청을 수신하도록 Apache IP에 지시하는 가상 호스트 파일을 수정하는 것입니다. 따라서 원하는 텍스트 편집기를 사용하여 Apache 구성 파일을 엽니다.

sudo vim /etc/httpd/conf/httpd.conf

두 개의 가상 호스트에 대해 다음 코드 블록을 추가합니다.

<VirtualHost 192.168.2.105:80>
   ServerName mydomain1.com
   ServerAlias www.mydomain1.com
   DocumentRoot /var/www/html/mydomain1.com/
ErrorLog logs/www.mydomain1.com-error_log
CustomLog logs/www.mydomain1.com-access_log common
</VirtualHost>


<VirtualHost 192.168.2.105:80>
    ServerName mydomain2.com
    ServerAlias www.mydomain2.com
    DocumentRoot /var/www/html/mydomain2.com
ErrorLog logs/www.mydomain2.com-error_log
CustomLog logs/www.mydomain2.com-access_log common
</VirtualHost>

변경 사항을 저장하고 종료합니다. 다음으로 구문이 올바른지, 오류가 없는지 확인하세요.

httpd -t

다음으로, 각 도메인에 대한 HTML 테스트 페이지를 만들고 브라우저에서 모든 것이 제대로 작동하는지 확인하는 방법으로 일부 콘텐츠를 추가하겠습니다.

mydomain1.com의 경우

mydomain1.com 디렉토리 아래에 index.html 파일을 만듭니다.

sudo vim /var/www/html/mydomain1.com/index.html 

다음 줄을 붙여넣으세요.

<html>
  <head>
    <title>My sample site</title>
  </head>
  <body>
    <h1>Success! Welcome to mydomain1.com.</h1>
  </body>
</html>

변경 사항을 저장하고 파일을 종료합니다.

mydomain2.com의 경우

mydomain2.com 디렉토리 아래에 index.html 파일을 만듭니다.

sudo vim /var/www/html/mydomain2.com/index.html 

다음 줄을 붙여넣으세요.

<html>
  <head>
    <title>My sample site</title>
  </head>
  <body>
    <h1>Success! Welcome to mydomain2.com.</h1>
  </body>
</html>

변경 사항을 저장하고 파일을 종료합니다.

이제 Apache 웹 서버를 시작하고 실행 중인지 확인합니다.

sudo systemctl start httpd
sudo systemctl status httpd

방화벽이 활성화된 경우 HTTPHTTPS(필요한 경우) 트래픽을 허용합니다.

sudo firewall-cmd --add-service=http --zone=public --permanent
sudo firewall-cmd --add-service=https --zone=public --permanent
sudo firewall-cmd --reload

이제 브라우저에서 도메인을 테스트해 보세요.

IP 기반 가상 호스팅 Linux 설정

IP 기반 가상 호스팅은 이름에서 알 수 있듯이 Linux 서버에 할당된 여러 IP 주소를 포함합니다. 대부분의 경우 여러 IP 주소를 제공하기 위해 두 개 이상의 NIC 카드가 시스템에 연결됩니다.

IP 기반 가상 호스팅의 목표는 각 도메인을 다른 도메인에서 사용하지 않는 고유한 IP 주소에 할당하는 것입니다.

이는 웹사이트가 SSL 인증서(mod_ssl)로 암호화되어 있거나 다른 포트에서 실행되는 상황에 이상적입니다. 우리 설정에는 두 개의 NIC 어댑터가 있습니다.

시스템의 IP 구성을 보려면 ifconfig 또는 ip a 명령을 실행하십시오.

ifconfig
OR
ip addr

우리 서버에는 각각 하나의 NIC에 할당된 두 개의 IP 주소가 있습니다. IP 192.168.2.106ens160에 할당되고 192.168.2.105ens224에 할당됩니다.

다시 한 번 httpd.conf 파일을 구성해 보겠습니다.

sudo vim /etc/httpd/conf/httpd.conf

표시된 대로 두 도메인에 대한 가상 호스트를 만듭니다. 각 IP 주소가 해당 가상 호스트 구성에 할당되었는지 확인하십시오.

<VirtualHost 192.168.2.105:80>
   ServerName mydomain1.com
   ServerAlias www.mydomain1.com
   DocumentRoot /var/www/html/mydomain1.com/
ErrorLog logs/www.mydomain1.com-error_log
CustomLog logs/www.mydomain1.com-access_log common
</VirtualHost>


<VirtualHost 192.168.2.106:80>
    ServerName mydomain2.com
    ServerAlias www.mydomain2.com
    DocumentRoot /var/www/html/mydomain2.com
ErrorLog logs/www.mydomain2.com-error_log
CustomLog logs/www.mydomain2.com-access_log common
</VirtualHost>

구성 파일을 저장하고 종료합니다. 다음으로 /etc/hosts 파일을 표시된 대로 수정합니다.

echo '192.168.2.105 www.mydomain1.com' >> /etc/hosts
echo '192.168.2.106 www.mydomain2.com'>> /etc/hosts

항목을 확인합니다.

cat /etc/hosts

192.168.2.105 www.mydomain1.com
192.168.2.106 www.mydomain2.com

그런 다음 변경 사항을 적용하려면 Apache 웹 서버를 다시 시작하십시오.

sudo systemctl restart httpd

마지막으로 표시된 대로 URL에 액세스하여 IP 기반 가상 호스팅 설정을 테스트하세요.

http://192.168.2.105
http://192.168.2.106

이 테스트는 IP 기반 가상 호스팅이 예상대로 작동하는지 확인합니다!

결론

이것이 이번 강의의 전부입니다. 큰 문제 없이 두 가지 유형의 가상 호스팅을 원활하게 구성할 수 있기를 바랍니다. 이 가이드에 대한 귀하의 의견에 감사드립니다.