Apache

Apache에서 서브 도메인 및 가상 호스트 설정하기

Posted 2012. 10. 08 Updated 2017. 06. 02 Views 38582 Replies 0
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄

서브 도메인(Sub Domain)을 사용할 경우 소유하고 있는 도메인을 세분화하여 각각 서로 다른 사이트나 서비스에 연결시킬 수 있습니다.

예를 들어 mydomain.com 이라는 도메인을 사용하고 있을 때, 다음과 같이 이들을 세분화하여 각각 다른 사이트나 서비스에 연결시킬 수 있습니다.

  • www.mydomain.com -> 사이트 A
  • sub1.mydomain.com -> 사이트 B
  • sub2.mydomain.com -> 서비스 A


가상 호스트(Virtual Host)는 하나의 서버에 여러 사이트나 서비스를 운영하는 기법을 의미합니다. 가상 호스팅은 서버가 하나의 IP주소를 갖는 'Name-based Virtual Host'와, 서버가 여러 개의 IP주소를 갖는 'IP-based Virtual Host' 기법으로 나뉩니다.

이에 대한 상세한 설명은 다은 Apache 메뉴얼 페이지에 자세히 설명되어 있습니다.

http://httpd.apache.org/docs/2.2/vhosts/

 

이 글에서는 서브도메인 및 가상호스트 설정을 통해 다음과 같이 하나의 서버에 두 개의 웹사이트를 운영하는 방법을 예시로 들도록 하겠습니다.

  • http://www.tuwlab.com → /var/www/tuwlab
  • http://batto.tuwlab.com → /var/www/batto


도메인 등록

사용하는 도메인이 연결된 DNS서비스에 접속해서, 다음과 같이 호스트 이름을 등록합니다. IP-based Virtual Host이므로 사용하려는 도메인이 모두 같은 IP주소를 가리키도록 설정합니다.

DNSEver에서 DNS를 관리하는 경우, 다음과 같이 '다이나믹 DNS 관리'에 설정하면 됩니다.

DNS Setting.png


가상 호스트 설정파일 작성

Apache의 사이트 설정 파일인 /etc/apache2/sites-available/my-site를 다음과 같이 작성합니다.

<VirtualHost *:80>
 	 ServerName www.tuwlab.com
 	 DocumentRoot /var/www/tuwlab
 </VirtualHost>
 
 <VirtualHost *:80>
 	 ServerName batto.tuwlab.com
 	 DocumentRoot /var/www/batto
 </VirtualHost>

'*:80'은 80번 포트로 들어오는 모든 IP주소에 대한 요청을 의미합니다.

Wildcard(*)를 사용하여 이런 형태로 작성해두면 유동 IP등의 환경에 의해 IP주소가 변경되더라도 환경설정 파일을 다시수정할 필요가 없습니다.

특정 IP(ex. 111.222.333.444) 및 다른 포트번호(ex. 8080)에 대한 요청을 기술할 때는  <VirtualHost 111.222.333.444:8080>의 형태로 작성하면 됩니다.

설정을 마쳤으면 다음 명령어를 입력하여 사이트를 활성화시키고 Apache를 재시작합니다.

sudo a2ensite my-site
sudo service apache2 restart