|
아파치에서 가상호스트를 설정하는 방법이 궁금합니다.
|
|
업데이트 : 2019-05-15 (수) 08:26 조회 : 19,088
|
한 컴퓨터/장비에서 여러개의 웹서비스들을 구동할 수 있도록 할 수 있는 방법을 아파치 가상 호스트(VirtualHost)라고 하며,그 적용방법은 크게 아래의 4가지로 나눌 수 있습니다.
1. IP기반 가상호스트(IP-based virtual host) : 가상호스트별로 각각 IP주소 1개씩 부여 2. 포트기반 가상호스트(port-based virtual host) : 동일한 호스트에 포트만 다르게 지정 3. 이름기반 가상호스트(name-based virtual host) : 같은 IP에서 도메인명이 다른 가상호스트들 운용 4. 기본 가상호스트(default virtual host) : 특정 호스트에 해당 사항 없을때 기본적으로 응답하게 될 호스트
일반적인 설정은 보통 httpd-vhosts.conf에 가상 호스트를 설정하고, httpd.conf 파일 마지막에 Include conf/extra/httpd-vhosts.conf를 추가하는 방식으로 이루어집니다.
IP 기반 가상 호스트(IP-based virtual host) - IDC 또는 전용망 네트워크환경에서 한 1개의 서버장비에 여러개의 IP를 할당받고 IP별로 가상호스트를 사용하는 방법입니다. - IP추가를 위해 각각의 네트워크 설정 등이 필요합니다.
Listen 211.49.89.1:80 Listen 211.49.89.2:80 <VirtualHost 211.49.89.1:80> DocumentRoot /var/www/site1 ServerName site1.example.com </VirtualHost> <VirtualHost 211.49.89.2:80> DocumentRoot /var/www/site2 ServerName site2.example.com </VirtualHost> |
포트 기반 가상 호스트(port-based virtual host) - 포트를 기반으로 가상 호스트를 설정합니다. Listen 포트에 사용할 포트를 여러개 설정한 후 VirtualHost를 해당 포트로 설정하면 됩니다. - 포트번호를 사용자가 미리알고 사용하여야하는 용도의 서비스에 적합하며, 1개의 장비/회선/IP에 각기 다른 여러개의 포트로 구분하여 사용하는 서비스에 적합합니다.
Listen 80 Listen 90 <VirtualHost 211.49.89.1:80> DocumentRoot /var/www/port_80 ServerName site1.example.com </VirtualHost> <VirtualHost 211.49.89.1:90> DocumentRoot /var/www/port_90 ServerName site2.example.com </VirtualHost> |
이름 기반 가상 호스트(name-based virtual host) - 한 장비/IP에 여러개의 도메인 이름을 부여하고 도메인 이름별로 가상 호스트를 사용하는 방법입니다. - 일반적인 웹호스팅 서비스에 많이 사용되는 방식으로 이름 기반 가상 호스트는 클라이언트 요청시 전송하는 헤더중 Host 헤더정보를 사용하여 가상 호스트 설정에 따라 웹 서비스를 하게 됩니다.
NameVirtualHost *:80 <VirtualHost *:80> DocumentRoot /var/www/site1 ServerName id1.codns.com </VirtualHost> <VirtualHost *:80> DocumentRoot /var/www/site2 ServerName id2.codns.com </VirtualHost> |
기본 가상호스트(default virtual host) - 기본 가상호스트란 어떤 가상호스트에도 해당하지않은 IP 주소와 포트에 대한 모든 요청을 처리하여 호스트를 띄워주는 것입니다.즉, 지정된 가상호스트가 없을 때 기본적으로 응답에 응할 호스트를 지정해 둔 것이 기본 가상호스트입니다. - default(기본) 가상호스트의 포트로 와일드카드를 사용하여 어떤 요청도 주서버로 못가도록 만듭니다. - AliasMatch나 RewriteRule을 사용하여 어떤 요청을 특정 페이지(혹은 스크립트)로 재작성할(rewrite) 수 있습니다.
NameVirtualHost *:80 <VirtualHost _default_:*> DocumentRoot /var/www/site DocumentRoot /www/default </VirtualHost> |
예제에 표기된 항목설명 1. NameVirtualHost 항목 : 만일 서버가 유동아이피를 사용하신다면 "NameVirtualHost *"과 같이 *를 아이피대신 사용하세요. 원래는 "NameVirtualHost 아이피"와 같이 현재 서버의 아이피를 넣어줘야 하지만 유동아이피를 사용하므로 아이피가 바뀔때 마다 이 부분을 수정해 줄 수는 없는 일입니다. "*" 기호는 "모든"이라는 의미를 가지고 있으므로 아이피대신 이 기호를 사용하시면 됩니다. 2. VirtualHost 항목 : 이 부분도 위와 같은 이유로 "*"를 사용하시면 됩니다. 3. ServerName 항목 : 사용할 도메인 주소를 적어 줍니다. 4. ServerAlias 항목 : 이것은 어떤 도메인으로 접속했을 때 홈페이지를 보이도록 할 것인지를 정하는 부분입니다. 즉, 첫번째 가상 호스트에서는 "*.aaa.com"을 지정했으므로 "aaa.com"을 포함한 "xxx.aaa.com" , "yyy.aaa.com" 등 앞에 어떠한 레코드(서브 도메인)를 붙여서 접속하더라도 모두 홈페이지를 보여줍니다. 이와는 다르게 두번째 가상 호스트에서는 "*"기호를 사용하지 않았으므로 이 항목에서 지정한 "bbb.com" , "xxx.bbb.com" , "www.bbb.com"로 접속 했을 때만 홈페이지를 보여줍니다. 5. DocumentRoot 항목 : 각각의 가상 호스트가 갖게될 홈디렉토리의 경로를 적어 줍니다. 윈도우용 아파치의 경우는 "C:\Apache2.2\htdocs\site"형식으로 경로를 작성하며, 리눅스의 경우에는 "/var/www/site"형식으로 작성하시면 됩니다.
코디엔에스 기술팀 - 2017-02-13일 등록
|
|
|
|
|