아파치 vhost - 가상호스트(virtualhost) 설정








     아파치 vhost(가상호스트)란?



    Web Server에는 기본적으로 존재하는 Host가 있으며, 이를 Main Host라고 합니다.

    하나의 Web Server에는 Main Host 외에 별도의 디렉토리르 가진 여러개의 Host를 설정하여, virtualhost를 설정을 통해 1개의 서버에서 여러개의 웹사이트를 운영할수 있습니다.





     아파치 가상호스트(virtualhost) 설정하기



    아파치 설정파일 수정 (httpd.conf)

    [root@web local]# vi apache/conf/extra/httpd-vhosts.conf
    
    # Virtual hosts
    Include conf/extra/httpd-vhosts.conf
    


    아파치 설정파일 하단에 보시면 Include conf/extra/httpd-vhosts.conf(vhost설정파일)가 있으며, 기본설정이 주석('#')으로 비활성화가 되어있습니다. 주석을 해제 시켜 활성하 시키면 vhost설정파일의 적용이 완료 되었습니다.



    virtualhost 수정 전

    #
    # Virtual Hosts
    #
    # 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
    # 
    # 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 *:80
    
    #
    # VirtualHost example:
    # Almost any Apache directive may go into a VirtualHost container.
    # The first VirtualHost section is used for all requests that do not
    # match a ServerName or ServerAlias in any  block.
    #
    
    <virtualhost *:80>
        ServerAdmin webmaster@dummy-host.example.com
        DocumentRoot /www/docs/dummy-host.example.com
        ServerName dummy-host.example.com
        ServerAlias www.dummy-host.example.com
        ErrorLog logs/dummy-host.example.com-error_log
        CustomLog logs/dummy-host.example.com-access_log common
    </VirtualHost>
    
    

    기본적으로 위의 내용과 같이 설정 되어 있으며 여러개의 웹사이트를 운영하시려면 수정하셔야 합니다.



    virtualhost 수정 후

    [root@web local]# vi apache2/conf/extra/httpd-vhosts.conf
    
    NameVirtualHost 192.168.59.128:80
    //해당 서버의 IP 입력
    
    
    <VirtualHost 192.168.59.128:80>
        DocumentRoot "/home/web/public_html"
    // 웹소스 파일이 위차한 디렉토리의 절대경로 입력
    
        ServerName t.com
    // 호스트를 제외한 도메인 주소
    
        ServerAlias www.t.com
    // 호스트를 포함한 도메인 주소
    
        ErrorLog logs/t.com-error_log
    // 접근시에 발생되는 에러로그가 위치할 경로
    
        CustomLog logs/t.com-access_log combined
    //에러로그를 제외한 로그가 위치할 경로
    
    
    </VirtualHost>
    


    DocumentRoot : 홈디렉토리, 폴더의 경로입니다.

    ServerName : 서버의 접속할 도메인(주 도메인, 서버의 접속할 도메인 입니다.)

    ErrorLog : 에러로그의 경로입니다.

    CostumLog : 접속 로그의 경로입니다.


    위의 내용과 같이 알맞게 입력하여 접속이 가능하게 설정하시면 되며 위의 내용을 하단에 더 추가하여 여러개의 웹서비스를 운영하실수 있도 있습니다.


    이과정은 서버와 도메인을 매핑시켜준다고 생각하시면 이해가 좀 쉬워질겁니다.


    위 과정을 마친하고 하여 해당 서버의 바로 접속이 가능한것이 아니라 네임서버의 레코드를 추가가 필요합니다.(강제로 접속하여야 될경우 호스트파일을 정의하여 강제로 접속하여야 합니다.)


    Posted by Server-talk 서버이야기