안녕하세요.
이호스트데이터센터 기술운영팀입니다.
가상호스트설정방법의 기본개념과 지난번 내용에서 수정부분을 추가했습니다.
작성자 : ㈜이호스트데이터센터 IDC운영부
*주호스트/가상호스트?
주호스트 : 웹서버에 기본적으로 존재하는 호스트로 <VirtualHost></VirtualHost>를 사용하지 않으면 그게 주호스트가 됩니다.
가상호스트 : 주호스트 이외에 나머지 호스트들, <VirtualHost></VirtualHost>사이에 적혀진 내용들
공식홈페이지에 다음과 같이 정의되어 있습니다.
ex)
*가상호스트의 기본개념
아파치의 가상호스트를 이용해 같은 서버에 여러개의 웹사이트를 실행시킬수 있다.
예를 들면, thegeekstuff.com과 top5freeware.com을 아파치웹서버가 실행되고 있는 물리적인 하나의 서버에서 실행시킬 수 있다.
3가지 타입의 아파치 가상호스트 설정이 있다.
IP기반
이름기반
포트기반
또는 이들을 여러가지 형태로 혼합한 형태
*IP기반 가상호스트의 기본개념
이 설정은 다른 IP를 가진 두개의 웹사이트가 있을때(다른 두개의 IP를 가진 물리적인 서버여야 함)
즉, 두개의 랜카드를 가진 서버를 의미하는데, 이들 중 하나는 아파치가상호스트로 서비스되는 통신이 가능한 웹사이트라야 한다.
-
So, this is not practical for most aspects, and you should not be using this.
그래서, 대부분의 측면에서는 실용적이지 않고, 유용하지 않을 수 있다? 랜카드 하나에 IP하나를 추가, 추가 하니까 비효율적일수도 있다는 말인가?;
아래의 예를 살펴보면, 두개의 랜카드를 포함하고 있고, 하나는 192.168.101.1에 thegeekstuff.com이라는 도메인을 가졌고, 다른 하나는 192.168.102.1에 top5freeware.com이라는 도메인을 가졌다.
두 IP모두 하나의 동일한 아파치웹서버에서 실행중이다. (IP기반인 가상호스트)
"IP기반 -> IP로 구분되는, NameVirtualHost지시자를 사용하지 않고, 여러개의 IP를 지정하여 가상호스트를 설정하는"
*이름기반의 가상호스트의 기본개념
이설정은 아파치웹서버가 요구를 받아들일때, HTTP header내 호스트이름을 찾아
호스트이름으로 다른 웹사이트를 서비스할 수 있게 한다.
하나의 웹서버에 하나의 IP만 가지고 있지만, 같은 IP로 여러개의 웹사이트 이름을 가진 DNS로 업데이트 해야할 경우,
-
For all practical purpose, you'll be using only Name-based virtual host configuration.
아래의 예를 보면, 하나의 서버에 단지 하나의 랜카드만 포함하고 있다.(랜카드는 192.168.101.1 IP로 구성된)
DNS 엔트리(thegeekstuff.com 과 top5freeware.com 웹사이트를 위해 설정된)는 192.168.101.1을 가르키고 있다.
-
DNS엔트리? (DNS엔트리가 DNS가 설정된 파일을 의미하는지, thegeekstuff.com IN 192.168.101.1이라는 한라인을 의미하는지는 정확히 모르겠습니다. 제생각엔 한 라인인거 같습니다. 흔히 DNS엔트리를 추가하라고 할때, zone파일에 저 한줄을 추가하기 때문에 그렇게 생각)
ex)
thegeekstuff.com |
IN |
192.168.101.1 |
top5freeware.com |
IN |
192.168.101.1 |
아파치가 요청을 받아들일때, DNS엔트리는 HTTP header내에 호스트이름을 찾고, 그에 상응하는 웹사이트를 서비스 해준다.
"이름기반-> 이름으로 구분되는, NameVirtualHost지시자를 사용하고 여러개의 이름을 사용하여 가상호스트를 설정하는"
*VirtualHost설정
NameVirtualHost *.80
모든 이름기반의 가상호스트는 80포트를 기본으로 리스팅 될것을 암시
<VirtualHost *:80></VirtualHost>
열었으면 닫아줘야 함
thegeekstuff.com과 top5freeware.com 가상호스트모두 같은 80포트로 리스트되야 하니까, 둘다 <VirtualHost *:80></VirtualHost>
thegeekstuff.com의 로그파일 위치 : /usr/local/apache2/docs/thegeekstuff
access_log와 error_log의 위치 : /usr/local/apache2/logs/thegeekstuff
*VirtualHost의 문법적 체크
httpd -S
[cent os 5.6]
기본 테스트환경
yum -y install php-cli후,
yum intall caching-nameserver 로 해결
http://www.linuxquestions.org/questions/linux-networking-3/named-restart-problem-530115/
question.
그중 맨 마지막 댓글.
vi /etc/named.caching-nameserver.conf
옵션들에 any로 변경
vi /etc/named.rfc1912.zones에 추가
cd /var/named/chroot/var/named로 이동하여, linux.edu.kr.zone과 192.168.157.zone파일을 생성
이름풀이 성공
vi /etc/httpd/conf/httpd.conf
이름풀이 잘됨
*이름기반 가상호스트 설정(기본예제)
우선 기본적으로 하나만 해보고, 다른것들도 추가해주자.
다음을 추가해주고,
퍼미션이 없다고 뜸
이거줘도 같음
|
|
/var/www/html의 권한을 살펴보고, 비교해보니 /home/bible에는 실행권한이 없다
실행권한 주니까, 된다
*이름기반 가상호스트 설정(응용예제1) : 가상호스트 설정시, "NameVirtualHost지시자를 사용"
APM, DNS패키지 설치완료된 스냅샷으로 다시 돌리고, 설정파일들을 다시 설정해보자.
vi /etc/named.caching-nameserver.conf 옵션들에 any로 변경
vi /etc/named.rfc1912.zones에 추가
cd /var/named/chroot/var/named로 이동하여, joayo.net.zone파일을 생성
service named restart해주고,
이름풀이 잘됨
가상호스트를 설정(vi /etc/httpd/conf/httpd.conf)
[틀린내용]
[수정된 내용] |
|
각각 계정에 public_html폴더를 만들고, 마찬가지로 chmod 755로 변경
money, charm, linuxga 모두 동일하게 만들어 주면 됨
아파치 리스타트 후,
mandoli.joayo.net를 입력(메인호스트)
money.joayo.net를 입력(가상호스트) |
|
charm.joayo.net(가상호스트)
linuxga.joayo.net(가상호스트) |
|
각각의 페이지들을 확인해보면, 잘뜬다(각각의 가상호스트에 접속)
*이름기반 가상호스트 설정(응용예제2) : 가상호스트 설정시, "NameVirtualHost지시자를 사용"
네트워크 카드 하나더 추가하고, 2개 IP를 사용하는 웹서버에서 joayo.net은 메인웹서버(메인호스트)로 사용하고, 가상호스트로 mandrake.joayo.net과 purum.joayo.net을 지정
vi /etc/named.caching-nameserver.conf 옵션들에 any로 변경
vi /etc/named.rfc1912.zones에 추가
vi /var/named/chroot/var/named/joayo.net.zone
vi /etc/httpd/conf/httpd.conf
네임서버가 192.168.157.137과 192.168.157.138 두가지로 설정되어 있는지 확인하고,
service named restart
service httpd restart
해준다음,
이름풀이 잘됨
앞과 동일하게 mandrake, purum 유저를 생성해주고, public_html디렉토리(퍼미션변경, index.html을 작성해주면 된다)
joayo.net 메인서버 사이트 접속(메인호스트) |
|
mandrake.joayo.net 사이트 접속(가상호스트)
purum.joayo.net 사이트 접속(가상호스트) |
|
*IP기반 가상호스팅 설정(예제1)
하나의 랜카드에 여러개의 IP를 설정할 수 있는 기능이 IP알리어스 인데, IP알리어스라는 기능을 통해 물리적 랜카드를 추가하지 않고도 여러개의 랜카드를 사용할 수 있는 것처럼 하는 효과를 낼 수 있다.
IP기반 가상호스팅은 앞에서 가상호스팅을 설정할때, NameVirtualHost를 이용하였지만, "NameVirtualHost지시자를 사용하지 않고, 여러개의 IP를 지정하여 가상호스트를 설정"한다는 것이다.
우선 이더넷 카드 3개를 장착하고, 리부팅하면 랜카드가 올라옴
IP를 여러개 설정해주고,
앞과 동일하게 linuxga, charm 유저를 생성하고, 홈디렉토리 지정 및 퍼미션을 지정해준다(생략)
vi /etc/httpd/conf/httpd.conf
가상호스트 설정
service named restart
service httpd restart
서비스 재시작 해주고,
이름풀이 잘됨
dumca.joayo.net, www.joayo.net, joayo.net을 입력했을 경우(메인호스트) linuxga.joayo.net를 입력했을 경우(가상 호스트) |
|
charm.joayo.net을 입력했을 경우(가상호스트)
|
|
*혼합네임/IP기반 가상호스트설정
이름과 IP가 혼합된 기법
특정한 IP를 필요로 하지 않는 호스트에 대해서는 네임기반가상호스트를 사용하고, 특정한 IP가 요구되는 호스트에 대해서는 IP기반 가상호스트 설정이 가능
혼합네임/IP기반 가상호스팅은 "NameVirualHost라는 지시자를 사용하고, 여러개의 IP를 사용하여 가상호스트를 지정"
www.joayo.net에 3개의 IP가 설정되어 있고, 192.168.157.137은 독립메인서버로 작동
linuxpia.net을 가상호스트 지정, thinc.co.kr과 hyejiwon.co.kr을 가상호스트로 지정해보자.
서자룡과 함께하는 Fedora Core리눅스 따라하기라는 책 p.800페이지를 살펴보면
joayo.net. |
IN |
192.168.157.137 |
linuxpai.net. |
IN |
192.168.157.138 |
thinc.co.kr |
IN |
192.168.157.139 |
hyejiwon.co.kr |
IN |
192.168.157.139 |
라고 되어있습니다. 이걸 한파일에 모두 끝낼 수 있을까? 분명 방법이 있을거라 생각했습니다.
주소의 규칙을 살펴보면, net으로 끝나거나 co.kr로 끝나는 방법을 생각했습니다. 이러면 두가지 파일로 만들었습니다.
vi /etc/named.rfc1912.zones
이름풀이 잘됨
가상호스트 설정(vi /etc/httpd/conf/httpd.conf)
[틀린부분]
|
x |
마찬가지로 유저만들고, public_html만들고, 퍼미션지정, index.html만들고,
service named restart
service httpd restart
joayo.net(메인호스트)
hyejiwon.co.kr(네임기반 가상호스트) |
x |
thinc.co.kr(네임기반 가상호스트)
hyejiwon.co.kr(네임기반 가상호스트) |
|
*혼합네임/IP기반 가상호스트설정(가끔 index.html을 잘 찾지 못한다면 DirectoryIndex를 통해, 직접 지정해줍니다.)
joayo.net(메인호스트)
linuxpia.net(IP기반 가상호스트) |
|
thinc.co.kr(네임기반 가상호스트)
hyejiwon.co.kr(네임기반 가상호스트) |
|
*혼합네임/IP기반/포트기반 가상호스트설정
다른 파일이나 설정들은 바로 위의 예를 참조
포트를 적어주지 않았을 경우(모두 아파치 페이지가 보임)
|
|
|
|
포트를 8080으로 적어줄 경우
joayo.net(메인호스트)
linuxpia.net(IP기반 가상호스트) |
|
thinc.co.kr(네임기반 가상호스트)
hyejiwon.co.kr(네임기반 가상호스트) |
|
작성자 : 기술운영부 / tech@ehostidc.co.kr
참고도서 및 사이트 :
서자룡과 함께하는 Fedora 리눅스 그대로 따라하기(p.792-801)http://sistlb.sist.ac.jp/manual/ko/vhosts/details.html
http://www.thegeekstuff.com/2011/07/apache-virtual-host/
http://www.linuxquestions.org/questions/linux-networking-3/named-restart-problem-530115/
마지막 업데이트 : 2012.2.17 am5:46
'[IT 알아보기] > IT 소식' 카테고리의 다른 글
이호스트 IDC, cent 5.6, 5.7에서 제로보드 XE 설치하기 (0) | 2012.03.03 |
---|---|
이호스트 IDC, 제로보드 XE설치 및 기본 게시판 모듈 올리기 (0) | 2012.02.27 |
이호스트IDC, 가상호스트( virtual host) 설정 따라하기 (0) | 2012.02.14 |
[이호스트IDC]후지쯔 SAS 하드 안잡힐때 (0) | 2012.02.09 |
[EhostIDC]X-window 설치/삭제하기 (0) | 2012.02.03 |