가상 호스트(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 |