가상 호스트(VirtualHost)는 한 장비에서 여러개의 웹서비스를 구동할 수 있도록 해준다.

보통 httpd-vhosts.conf에 가상 호스트를 설정하고, httpd.conf 파일 마지막에 Include conf/extra/httpd-vhosts.conf를 추가한다.


IP 기반 가상 호스트

- 한 장비에 여러개의 IP를 할당받고 IP별로 가상호스트를 사용하는 방법이다.

- IP추가를 위해 네트워크 카드 추가 및 네트워크 설정 등이 필요하다.


Listen 192.168.111.100:80

Listen 192.168.111.200:80


<VirtualHost 192.168.111.100:80>

  DocumentRoot /var/www/site1

  ServerName site1.example.com

</VirtualHost>


<VirtualHost 192.168.111.200:80>

  DocumentRoot /var/www/site2

  ServerName site2.example.com

</VirtualHost>


포트 기반 가상 호스트

- 포트를 기반으로 가상 호스트를 설정한다. Listen 포트에 사용할 포트를 여러개 설정한 후 VirtualHost를 해당 포트로 설정하면 된다.

- 하지만, 포트를 인식하고 사용자들이 웹서비스에 접근하는 것은 불편하므로 일반적인 방법은 아니다.


- 예제)

Listen 80

Listen 90


<VirtualHost 192.168.111.100:80>

  DocumentRoot /var/www/port_80

</VirtualHost>


<VirtualHost 192.168.111.100:90>

  DocumentRoot /var/www/port_90

</VirtualHost>


이름 기반 가상 호스트

- 한 장비에 여러개의 도메인 이름을 부여하고 도메인 이름별로 가상 호스트를 사용하는 방법이다.

- 이름 기반 가상 호스트는 클라이언트 요청시 전송하는 헤더중 Host 헤더정보를 사용하여 가상 호스트 설정에 따라 웹 서비스를 하게 된다.


- 예제)

NameVirtualHost *:80


<VirtualHost *:80>

  ServerName site1.example.com

  ServerAlias site1.co.kr

  ServerAlias site.kr

  DocumentRoot /var/www/site1

</VirtualHost>



<VirtualHost *:80>

  ServerName site2.example.com

  DocumentRoot /var/www/site2

</VirtualHost>


1) NameVirtualHost 설정

 - 80 포트에서 이름 기반 가상 호스트를 사용하겠다는 의미로 반드시 적어줘야 한다.

 - 만약 설정되지 않는 호스트명을 보냈을 경우 기본 처리할 가상호스트로 지정하려면 <VirtualHost _default_:80>으로 지정하도록 한다. 만약 이 설정이 없다면 첫번째 가상 호스트 설정으로 동작하게 된다.

 - 하지만 아파치 웹서버 2.4 이후부터는 이름 기반 가상 호스트가 Default이므로, 2.4 이후 버전에서는 없어졌다.


2) ServerAlias

 - 웹서비스가 여러개의 도메인을 사용할 경우 지정해준다. 여러개 지정해줘도 무방하다.



※ 참고자료

- 리눅스를 활용한 회사 인프라 구축의 모든 것



'서버 > 아파치' 카테고리의 다른 글

[아파치] mod_rewrite 모듈  (0) 2016.02.23
[아파치] mod_setenvif 모듈  (0) 2016.02.22
[아파치]httpd.conf 서버설정  (0) 2016.02.20
[아파치] httpd.conf 전역설정  (0) 2016.02.12
[아파치] mod_mpm 모듈  (0) 2016.01.12
Posted by SungHoon, Park
,