본문 바로가기

Projects/Server

Apache 가상호스트 설정

Apache 가상호스트 설정


kenu
2002-03-19 12:27오전

이 문서는 apache 서버에서 가상호스트를 사용해서 여러개의 도메인을 사용하도록 하는 방법을 설명합니다. 파일은 apache 의 conf 디렉토리에 있는 httpd.conf 파일만을 변경합니다. apache의 기본적인 설치는 잘 되어 있다고 가정하고 다른 도메인을 붙이는 법을 설명합니다. 또한 DNS 서버 설정에 관해서는 이 문서에서 설명하지 않겠습니다. 확장강좌는 tomcat 4.0.x 와 연동하는 강좌입니다.
강좌환경
OS:Solaris 2.8
Apache: 1.3.20
설치디렉토리: /usr/local/apache
 


주의할 점은 비단 아파치만 해당되는 것이 아닙니다만, 버전마다 환경설정하는 것이 차이가 있을 경우가 많기 때문에 가능하면 패키지에 포함된 Installation 문서를 표준으로 설치하시기 바랍니다.
 

Tomcat 과 연동하기 위해서는 DSO 모듈을 사용하는 mode 로 설치가 되어야 합니다. 1.3.22 버전부터는 이 모드로 설치가 되지만 1.3.21 이전 버전은 아래처럼 소스파일을 이용해서 설치를 해야됩니다. 가능하면 1.3.23 이후 버전을 다운받아서 설치하십시오. 아래 명령어를 skip 할 수 있으니까요. 아래 명령어는 unix 계열에서만 사용하는 명령어입니다. windows 의 경우 패키지에 포함된 문서를 보세요. \ 는 줄이 길어질 때 엔터를 쳐도 실행이 안되도록 하는 이음 문자입니다.
apache 컴파일 명령줄
./configure --prefix=/usr/local/apache \
            --enable-shared=max \
            --enable-rule=SHARED_CORE \
            --enable-module=so
 


conf 디렉토리에 있는 httpd.conf 파일을 열어서 아래 부분에 추가할 도메인과 그에 따른 부가적인 정보를 입력합니다.
설치경로
...
### Section 3: Virtual Hosts
#
# VirtualHost: If you want to maintain multiple domains/hostnames on your
# machine you can setup VirtualHost containers for them. Most configurations
# use only name-based virtual hosts so the server doesn't need to worry about
# IP addresses. This is indicated by the asterisks in the directives below.
#
# Please see the documentation at <URL:http://www.apache.org/docs/vhosts/>
# for further details before you try to setup virtual hosts.
#
# You may use the command line option '-S' to verify your virtual host
# configuration.

#
# Use name-based virtual hosting.
#
NameVirtualHost *

#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for requests without a known
# server name.
#
#<VirtualHost *>
#    ServerAdmin webmaster@dummy-host.example.com
#    DocumentRoot /www/docs/dummy-host.example.com
#    ServerName dummy-host.example.com
#    ErrorLog logs/dummy-host.example.com-error_log
#    CustomLog logs/dummy-host.example.com-access_log common
#</VirtualHost>
    <VirtualHost *>
    ServerName kpanet.or.kr
    DocumentRoot /home/jakarta/kpanet402/webapps/ROOT
    ServerAlias kpanet.or.kr *.kpanet.or.kr
    </VirtualHost>

    <VirtualHost *>
    ServerName ycpa.or.kr
    DocumentRoot /home/vhost/ycpahome/ROOT
    ServerAlias ycpa.or.kr *.ycpa.or.kr
    </VirtualHost>

    <VirtualHost *>
    ServerName pharmsnet.com
    DocumentRoot /home/jakarta/pmstemp
    ServerAlias pharmsnet.com *.pharmsnet.com
    </VirtualHost>

Include /home/jakarta/kpanet402/conf/jk/mod_jk.conf
       


제가 사용하는 httpd.conf 파일의 일부입니다. httpd.conf 의 마지막 부분에 가상호스트 섹션이 있고, 이 부분에 여러개의 도메인을 세팅하면 됩니다. 위의 예에서는 kpanet.or.kr, ycpa.or.kr, pharmsnet.com 이렇게 3개의 도메인이 설정되어있습니다. 각각의 도메인마다 ROOT 디렉토리가 다르게 설정되어있습니다. 각각의 태그 안에 있는 DocumentRoot 의 값이 다름을 확인하실 수 있을 겁니다. 그리고 ServerAlias 는 2차 도메인을 포함합니다. 대표적인 것이 www.kpanet.or.kr 에서의 www 가 되겠죠. 모든 것을 통틀어 wildcard 문자인 * 으로 처리하도록 합니다. 2차 도메인마다 다르게 디렉토리를 지정하는 법은 설명하지 않겠습니다. 이에 관한 문서는 아래 링크에서 소개한 사이트를 찾아보시는 것이 더 나을 것이라 생각됩니다.
 

마지막줄의 Include 는 tomcat과 연동하는 모듈인 mod_jk.conf 파일의 경로를 적어놓은 것입니다. apache만으로 서비스할 경우에는 필요없습니다. 일단 이렇게 가상호스트 설정을 마쳤으면 /usr/local/apache/bin/apachectl restart 로 재시동합니다.
 

브라우저를 열어서 설정을 확인해보시기 바랍니다. 아래의 링크에서 더 자세한 정보를 찾아보시기 바랍니다.
 

관련 사이트
http://www.apache.org/docs/vhosts 
아파치 가상호스트 설정에 대한 공식문서
http://www.apache.kr.net/documents/vhost-story.html 
정관진님의 아파치 가상호스트 설정에 대한 한글문서
http://www.superuser.co.kr/apache/virtualhost/page01.htm
아파치를 활용한 가상호스트 설정법
http://www.0u4u.com/linux/apache8.htm
공유포유의 가상호스트 설정법
http://www.apache.kr.net
한국 아파치 유저 그룹
http://okjsp.pe.kr/lecture/lec01/vhost02.xml
Tomcat4의 가상호스트 설정