Apache HTTP Server Version 2.4
IP기반이란 말이 의미하듯이 서버는 IP기반 가상호스트 각각에 대해 다른 IP 주소를 가져야한다. 이는 컴퓨터를 물리적으로 여러 네트웍에 연결하거나, 최근 운영체제에서 지원하는 가상 인터페이스를 (자세한 내용은 시스템 문서를 참고하라. 흔히 "ip aliases"라고 하며, 보통 "ifconfig" 명령어로 만든다) 사용하여 가능하다.
여러 호스트를 지원하도록 아파치를 설정하는 방법은 두가지다. 하나는 각 호스트마다 별도의 웹서버를 실행하는 법이고, 다른 하나는 모든 가상호스트를 지원하는 서버 한개를 실행하는 방법이다.
언제 여러 서버를 사용하나:
User
, Group
, Listen
, ServerRoot
설정으로 실행해야 한다.Listen
할 수만 있다. 그래서
어떤 이유에서건 특정 주소를 기다릴 필요가 있다면, (한
웹서버가 한 주소를 제외한 모든 주소를 기다리고 다른 한
웹서버가 제외한 주소를 기다릴 수 있지만) 지정한 주소
모두를 기다려야 한다.언제 서버 한개를 사용하나:
각 가상호스트별로 웹서버를 설치한다. 설정파일의
Listen
지시어에
서버가 서비스할 IP 주소(혹은 가상호스트)를 적어준다. 예를
들면,
Listen www.smallco.com:80
호스트명 보다는 IP 주소를 사용하길 바란다. (DNS 문제 참고)
이 경우 웹서버 한개로 주서버와 모든 가상호스트에 대한
요청을 서비스한다. 설정파일의 VirtualHost
지시어에 가상호스트마다
다른 ServerAdmin
,
ServerName
, DocumentRoot
, ErrorLog
, TransferLog
,
CustomLog
지시어 값을 설정한다. 예를 들면,
<VirtualHost www.smallco.com>
ServerAdmin webmaster@mail.smallco.com
DocumentRoot /groups/smallco/www
ServerName www.smallco.com
ErrorLog /groups/smallco/logs/error_log
TransferLog /groups/smallco/logs/access_log
</VirtualHost>
<VirtualHost www.baygroup.org>
ServerAdmin webmaster@mail.baygroup.org
DocumentRoot /groups/baygroup/www
ServerName www.baygroup.org
ErrorLog /groups/baygroup/logs/error_log
TransferLog /groups/baygroup/logs/access_log
</VirtualHost>
호스트명 보다는 IP 주소를 사용하길 바란다. (DNS 문제 참고)
VirtualHost 지시어 안에서는 프로세스 생성과 기타 몇몇 지시어를 제외하고 거의 모든 설정지시어를 사용할 수 있다. VirtualHost 지시어 안에서 지시어를 사용할 수 있는지 알려면 지시어 목록에서 사용장소를 확인하라.
suEXEC 프로그램을
사용한다면 VirtualHost 지시어 안에 User
와 Group
을 사용할 수 있다.
보안: 서버를 실행하는 사용자외에 다른 사람에게 로그파일이 있는 디렉토리의 쓰기권한이 있다면 보안 문제를 조심하라. 자세한 내용은 보안 팁을 참고하라.