'Debian'에 해당되는 글 1건
- 2006/07/16 dnip.net 도메인을 이용한 아파치 가상 호스팅 설정
마찬가지로 작년에 만들었던 문서입니다.
도메인은 2차 도메인 제공업체의 제공방식이 frame 을 이용해서 접속시키는 방식이 아닌 DNS수준의 ip 매핑을 지원하는 경우에는 모두 이용이 가능합니다.
간단히 데비안 리눅스에서 아파치 virtual hosting 을 사용하고 싶으신 분들이 참고하면 좋을만한 자료네요.
도메인은 2차 도메인 제공업체의 제공방식이 frame 을 이용해서 접속시키는 방식이 아닌 DNS수준의 ip 매핑을 지원하는 경우에는 모두 이용이 가능합니다.
간단히 데비안 리눅스에서 아파치 virtual hosting 을 사용하고 싶으신 분들이 참고하면 좋을만한 자료네요.
1. dnip.net
사실 동적 IP를 고정 ip 로 매핑해주는 서비스는 대단히 다양하지만...
제가 써본 결과 dnip.net 이 가장 쓸만하더라구요. 일단 치기가 편하고 서비스도 안정적입니다.
그리고 무료지요 ^^;;
이번에 제가 쓰는 팁은 dnip.net 을 이용해서 개인 홈페이지를 운영중인 분들이 apache 2의 Virtual Hosting 을 이용해서 다수의 홈페이지를 한개의 서버에서 운영할 수 있는 방법을 알려드릴 목적입니다.
일단 APM과 같은 기본 설정은 끝난 상태라고 가정하겠습니다.
2. dnip.net 가입하기
그리고 무료지요 ^^;;
이번에 제가 쓰는 팁은 dnip.net 을 이용해서 개인 홈페이지를 운영중인 분들이 apache 2의 Virtual Hosting 을 이용해서 다수의 홈페이지를 한개의 서버에서 운영할 수 있는 방법을 알려드릴 목적입니다.
일단 APM과 같은 기본 설정은 끝난 상태라고 가정하겠습니다.
2. dnip.net 가입하기
상기 페이지로 이동해서 일단 Signup 메뉴를 선택하고 가입합니다. 한사람이 다수의 아이디로 가입이 되기때문에 운영하실 홈페이지의 개수 만큼 가입하시면 됩니다. 가입을 하시면 특정아이피를 ID.dnip.net의 형태로 접속이 가능합니다.
3. 동적 ip 업데이터를 cron을 이용해 등록하기
3. 동적 ip 업데이터를 cron을 이용해 등록하기
동적 아이피인 경우 IP가 계속 변하기 때문에 지속적으로 이를 업데이트 해줄 필요 가 있습니다. dnip.net 에 가시면 다양한 언어로 스크립트가 만들어져 있습니다. 보통 unix 클론에는 perl 이 기본적으로 설치가 되기 때문에 저의 경우에는 펄을 이용한 패치를 이용했습니다.
다음의 코드를 적고 원하시는 파일이름으로 저장하셔도 됩니다.
#!/usr/bin/perl
#
# DNIP ip update utility (perl)
#
# Author : hollywar <hollywar@mail.holywar.net>
# $Date: 2005/08/18 19:53:00 $
#
# $Revision: 1.9 $
#
# Usage : Change the 'ID', 'PASSWORD' to your own one
# and just run this script.
#
# If you want to set your ip address directly,
# change the 'AUTO' to your real ip address in ADDRESS section.
# (ex. ADDRESS="0.0.0.0")
#
# Free Dynamic Domain Name Server Service DNIP.NET (http://www.dnip.net)
#
use Socket ;
$ID="ID" ; # 가입하신 ID를 적어주시면 됩니다.
$PASSWORD="PASSWORD" ; # 패스워드를 적어주시면 됩니다.
$ADDRESS="AUTO" ; # dhcp 인경우 auto 를 적어주시고 static 인 경우에는 아이피를 적어주시면 됩니다.
$REMOTE="www.dnip.net" ;
$PORT="80" ;
$iaddr = inet_aton($REMOTE) ;
$paddr = sockaddr_in($PORT,$iaddr) ;
$proto = getprotobyname('tcp') ;
socket(SOCK,PF_INET,SOCK_STREAM,$proto) ;
connect(SOCK,$paddr) ;
$msg = "GET /update.cgi?id=$ID&password=$PASSWORD&step=2&address=$ADDRESS HTTP/1.0\n" . "User-Agent: DNIP PERL/0.1\n\n" ;
send(SOCK,$msg,0) ;
while($line = <SOCK>) {
if ($check==1) { print "$line" ;}
if ($line =~ /^.*Content-Type/) {$check = 1 ; }
}
close(SOCK) ;
1 ;
#
# $Id: Dnip_2enet_b8_a6_c0_cc_bf_eb_c7_d1Ip_c7_d2_b4_e7,v 1.9 2005/08/18 19:53:00 www-data Exp www-data $
#
상기의 파일을 원하시는 디렉토리에 저장합니다.
저의 경우 /usr/local/share/update_perl.sh에 저장했습니다.
저장을 하시고 재 부팅할때 ip가 업데이트 되도록 시작 프로그램에 등록하는 작업을 합니다.
$ ln -s /usr/local/share/update_perl.sh /etc/init.d/dnip
$ /etc/init.d/update-rc.d dnip defaults # 이렇게 해서 등록합니다.
그리고 운영 도중에 통신회사측에 의해서 ip 가 바뀔 경우에 대비해서 cron 에 등록합니다.
$ vi /etc/crontab
# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file.
# This file also has a username field, that none of the other crontabs do.
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
# m h dom mon dow user command
17 * * * * root run-parts --report /etc/cron.hourly
25 6 * * * root test -x /usr/sbin/anacron || run-parts --report /etc/cron.daily
47 6 * * 7 root test -x /usr/sbin/anacron || run-parts --report /etc/cron.weekly
52 6 1 * * root test -x /usr/sbin/anacron || run-parts --report /etc/cron.monthly
#
0,20,40 * * * * root ifdown eth0 && ifup eth0
0,20,40 * * * * root /usr/local/share/update_perl.sh # 이렇게 해서 dnip 를 0, 20, 40 분에 실행이 되도록 등록합니다.
4. apache2 virtual hosting 설정
Virtual Host 를 이용하면 한개의 서버에서 서로다른 2개의 주소를 가진 다른 홈페이지의 운영이 가능합니다.
Virtual Host의 경우에는 같단하게 domainname 을 이용해서 하는 방식으로 합니다.
이 방식을 이용하려면 동일한 ip를 가르키는 domainname 이 등록된 주소가 2개 이상이 있어야합니다. (ce.ro 같은 서비스를 이용하는 것 보다 깔끔하고 좋지요.)
데비안 Sid 를 기준으로 apache 2를 설치하면 다음의 위치에 Document Root 설정파일이 위치합니다. 이 파일을 vi 로 열어줍니다.
root@daisy:~# vi /etc/apache2/sites-available/defaultName
VirtualHost *
<VirtualHost *>
ServerAdmin eternalbleu@gmail.com ...
DocumentRoot /var/www/
</VirtualHost>
일단 sapius.dnip.net 을 /var/www/ 에 위치한 홈페이지를 운영하는 주소라고하고 cscafe.dnip.net 을 /home/httpd/public_html/cscafe/에 위치한 홈페이지의 운영을 위한 주소라고 가정하겠습니다.
NameVirtualHost *
<VirtualHost *>
ServerName cscafe.dnip.net
ServerAdmin eternalbleu@gmail.com
DocumentRoot /home/httpd/public_html/cscafe/
</VirtualHost>
<VirtualHost *>
ServerName sapius.dnip.net
ServerAdmin webmaster@sapius.dnip.net...
DocumentRoot /var/www/
</VirtualHost>
상기와 같은 방식으로 운영하려고 하는 페이지들의 주소를 설정해주시면 한개의 서버로 서로다른 주소를 가진 홈페이지의 운영이 가능합니다.DNS서버로 설정하면 굳이 dnip 를 이용하지 않고 일반적인 .com 주소로도 운영이 가능합니다.

Prev
Rss Feed