way.co.kr 에서 퍼왔씀니당.
1. 목표
http://way.co.kr/~ID 와 같은 사용자 계정의 홈페이지 주
소를
서브호스트명을 사용하여 http://ID.way.co.kr 과 같이 사
용하고자 한다.
2. 네임서버
네임서버의 zone 파일에 와일드카드를 사용하여 기준이될
도메인(way.co.kr)의
모든 서브호스트를 동일한 IP로 묶어준다.
*.way.co.kr. IN A 211.123.100.1
IN MX 10 way.co.kr.
위와 같이 설정할 경우 abc.way.co.kr 또는 xyz.way.co.kr
등 way.co.kr의
모든 서브호스트는 211.123.100.1 이라는 IP로 매핑된다.
-. 참고정보
http://way.co.kr/way-board/way-board.php? db=LINUX&j=v&number=7
RFC1034(4.3.3. Wildcards)
3. 웹서버
3.1. 모듈 준비
3.1.1. rpm 패키지
최근에 배포된 아파치 버전은 대부분 아파치 rewrite 모듈
이
DSO(Dynamic Shared Object) 형태로 컴파일 되어 있다.
/etc/httpd/conf/httpd.conf 파일을 열어 다음 두줄이 포함
되어
있는지 확인해보기 바란다.
두줄이 나란히 위치하지는 않을 것이며, 경우에 따라
AddModule 라인이
존재하지 않을 수도 있다.
만약 주석처리되어 있다면 제거하여 활성화하기 바란다.
LoadModule rewrite_module ......
AddModule mod_rewrite.c
3.1.2. 컴파일
컴파일하여 설치된 경우도 위의 rpm 에서와 마찬가지 방법
으로
rewrite 모듈이 컴파일 되어 있는지 확인해보기 바란다.
새로이 컴파일하여 설치하려면 다음과 같은 방법으로한다.
물론 ./configure 옵션중 rewrite 이외의 부분은 원하는대
로
지정하기 바란다. 기본설치의 경우 아래 정도면 무방하리
라 여겨진다.
# cd apache-1.3.x
# ./configure --
prefix=/usr/local/apache --enable-
shared=max --enable-
module=rewrite --enable-shared=rewrite
# make
# make install
3.2. 가상서버 설정
이제 httpd.conf 파일을 편집한다.
way.co.kr의 서브호스트들을 모두 수용하기 위해
ServerAlias 지시자를
사용해야 하고, ServerAlias 지시자는 VirtualHost 안에서
만 사용되므로
Name-basedvirtual host 형태를 취해야 한다.
ServerAlias를 사용할때는 네임서버 설정시와 마찬가지로
와일드 카드를
사용한다.
NameVirtualHost 211.123.100.1
ServerAdmin webmaster at way.co.kr DocumentRoot /usr/local/apache/htdocs
ServerName way.co.kr
ServerAlias way.co.kr *.way.co.kr
RewriteEngine on
RewriteCond %{HTTP_HOST} ^[^.]
+.way.co.kr$
RewriteRule ^(.+) %{HTTP_HOST}
$1 [C]
RewriteRule ^([^.]+).way.co.kr(.*) /home/
$1/public_html$2
ServerAdmin, DocumentRoot 등의 지시자는 특별히 영향받
지 않으므로
원하는대로 지정해도 된다.
Rewrite 부분에는 정규표현식이 주로 사용되며, way.co.kr
등에
사용되는 기호(마침표)는 . 등과 같이 표현해야 한다.
ㄱ. 기본 도메인 : linux.org
ㄴ. 계정 웹문서 경로 구조 : /usr/home/ID/www
ㄷ. IP 주소 : 123.123.123.200
만약 위와 같은 상황이라면 다음과 같이 설정하고 아파치를
재기동하는 것으로서 원하는 결과를 얻을 수 있을 것이다.
NameVirtualHost 123.123.123.200
ServerAdmin webmaster at linux.org DocumentRoot /usr/local/apache/htdocs
ServerName linux.org
ServerAlias linux.org *.linux.org
RewriteEngine on
RewriteCond %{HTTP_HOST} ^[^.]
+.linux.org$
RewriteRule ^(.+) %{HTTP_HOST}
$1 [C]
RewriteRule ^([^.]+).linux.org(.*) /usr/home/
$1/www$2
-. 참고정보
http://www.apache.org/docs/mod/mod_rewrite.htmlhttp://www.engelschall.com/pw/apache/rewriteguide