SW/WEB WAS

[Apache] Virtual Hosts 종류 알아보기

yeit 2024. 9. 14. 19:52
728x90

 

Virtual Hosts란?

하나의 Apache서버에서 여러 개의 웹사이트를 호스팅하게 해주는 기능을 말한다. 이를 통해 하나의 서버에서 여러 개의 웹사이트를 운영할 수 있으며 각각을 독립적으로 관리할 수 있다.

 

 

 

종류

1. Name-Based Virtual Host : 클라이언트가 요청한 도메인 이름을 기준으로 가상 호스트를 구분

  • IP 부족 문제로 인해 Name-Based Virtual Hosting이 가장 큰 비중을 차지한다.
  • <VirtualHost> 지시어의 인자는 NameVirtualHost 지시어의 인자와 일치해야 한다. 그렇지 않을 경우에는 Apache가 가상 호스트 설정을 무시할 수 있다.
ServerName 127.0.0.1
NameVirtualHost *:80

<VirtualHost *:80>
    ServerName www.test1.com
    DocumentRoot "/var/www/test1"
</VirtualHost>

<VirtualHost *:80>
    ServerName www.test2.com
    DocumentRoot "/var/www/test2"
</VirtualHost>
  • 참고로 Apache 설정만으로는 DNS서버에 자동으로 레코드가 추가되지는 않는다. 별도로 DNS서버에서 도메인 이름과 서버의 IP를 매핑하는 작업이 필요하다.
  • httpd -S을 사용하면 Apache가 인식하는 가상 호스트 구성을 확인할 수 있다.
 $ httpd -S
  • 하나의 가상 호스트에 여러개의 도메인을 지정하는 것도 가능하다.
 ServerName test1.com
 ServerAlias www.test.com test1.com

 

 

2. IP-Based Virtual Host : IP 주소를 기준으로 구분

 <VirtualHost 127.0.0.1:80>
 	ServerName www.test1.com
 	DocumentRoot /var/www/test1
 </VirtualHost>

 <VirtualHost 127.0.0.2:80>
 	ServerName www.test2.com
 	DocumentRoot /var/www/test2
 </VirtualHost>

 

 

3. Port-Based Virtual Host : 포트 기준으로 구분

 Listen 8080

 <VirtualHost *:8080>
 	ServerName www.test1.com
 	DocumentRoot /var/www/test1
 </VirtualHost>

 Listen 9090

 <VirtualHost *:9090>
 	ServerName www.test2.com
 	DocumentRoot /var/www/test2
 </VirtualHost>

 

 

4. Default Virtual Host : 기본 가상 호스트 (어떤 호스트와도 매핑되지 않는 경우에 처리)

 <VirtualHost _default_>
 	DocumentRoot /www/htdocs
 </VirtualHost>

 

포트 번호를 지정하여 모든 주소와 해당 포트에 대해 기본 가상 호스트를 설정할 수도 있다.

 <VirtualHost _default_:443>

 

 

 

728x90