|
|
|
리눅스팁 Go Unix Power Tools Online Book
Go Bash Guide
|
|
Read No. 105 article |
2002-02-20 20:08:21 |
|
|
|
|
NickName |
풀비누 |
Subject |
유동IP에서의 아파치 가상호스트 설정 스크립트 |
|
|
글출처 : http://wowdns.com
잠깐 짬을 내 만들어 보았습니다..
설정사항은 레드헷 7.1 기준입니다.
그외 시스템 사용자는 알맞게 변경후 사용하시기 바랍니다.
------------------------------------------------------------------------------------------
#!/bin/sh
DEVICE=eth0
NEWIP=`/sbin/ifconfig $DEVICE | grep "inet " | awk '{print $2}' | cut -c6-`
IPFILE='/etc/httpd/conf/vhost.ip'
VHOSTCONF='/etc/httpd/conf/vhost.conf'
HTTPDRUN="/etc/init.d/httpd restart"
modify_vhost()
{
echo "$NEWIP" > $IPFILE
TMPFILE=`sed s/$OLDIP/$NEWIP/g $VHOSTCONF`
echo "$TMPFILE" > $VHOSTCONF
echo "`$HTTPDRUN`"
}
if [ -f "$IPFILE" ] ; then
OLDIP=`cat $IPFILE`
if [ "$NEWIP" != "$OLDIP" ] ; then
modify_vhost
fi
else
modify_vhost
fi
------------------------------------------------------------------------------------------
아주 간단하죠 ?
위의 스크립트 설정에 필요한 부분을 설명 드리겠습니다.
DEVICE 는 인터넷 이용 형태로써 ifconfig 명령시 실 IP를 갖고 있는
장치를 나타 냅니다.
ADSL 사용자는 ppp0 CABLE 또는 LAN 사용자는 eth0 가 됩니다..
(그외 FreeBSD나 여러개의 랜카드 사용자는 ifconfig 실행후 확인)
IPFILE 은 불필요한 아파치 재실행을 막기 위해 IP가 바뀔때만 실행 하도록 이전 IP를 보관할 화일입니다..
VHOSTFILE 은 가상 호스트 설정화일이 있는 화일입니다.
HTTPDRUN은 재시작 명령입니다.
kill -HUP `cat /var/run/httpd.pid` 도 될듯 한데..
잘 안먹네요..
자 그럼 실제 적용하는 방법을 가르쳐 드리겠습니다.
* 모든 작업은 root 권한에서 실행되어야 합니다.
1. 위의 소스만 카피후 ip.sh 로 화일을 만들어 저장한다.
( /usr/local/sbin/ 디렉토리나 기타 임의로 저장 하세요..)
2. 권한 설정... chmod 755 ip.sh (임의 수정 가능)
3. 아파치 설정화일이 있는 디렉토리로 이동 하여 vhost.conf 란 화일을 만듭니다.
4. 아파치 설정화일에서 가상 호스트 설정하는 부분만 임의로 빼냅니다.
5. 빼낸부분을 vhost.conf에 복사하고 아파치 설정화일에서는 삭제를 합니다.
6. 삭제후 아파치 conf 화일 제일 하단에 include conf/vhost.conf 를 추가 하여 저장합니다.
7. ifconfig 명령등으로 현재 시스템의 IP를 확인하고 vhost.conf에 알맞게 가상호스트 설정을 합니다.
( 혹시 모르니 만들어진 vhost.conf 화일을 하나 백업 받아 둡니다.)
8. 이제 ip.sh 를 실행시켜 봅니다..
9. 크론이나 기타 정기적인 수행이 가능한 프로그램을 이용하여 원하는 시간마다 체크 하도록 합니다..
* 주의
----------최초 설치시 반드시 확인해 주세요..------------
IP가 저장되는 IPFILE의 값을 잘 설정하셔야 하는데 반드시 설정시의 IP값이 들어가 있어야 합니다.
더불어, ip.sh 스크립트를 실행하기 전에 반드시 vhost.conf에
가상 호스트 설정이 되어 있어야 합니다..
이때, 설정시 삽입된 IP는 IPFILE에 있는 IP와 동일해야 합니다..
----------- vhost.conf 예제화일 ------------
NameVirtualHost 211.53.206.101
ServerAdmin root at sample.com
DocumentRoot /var/www/
ServerName sample.com
#아래 부분은 IE6에서 쿠키가 안되는 점을 해결하는 부분입니다.
#이 부분에 대해서는 'IE에서 쿠키가 안될때' 게시판을 참고 하세요.
Header set P3P "CP='CAO PSA CONi OTR OUR DEM ONL'"
ErrorLog /var/log/httpd/sample.com-error.log
TransferLog /var/log/httpd/sample.com-access.log
Options ExecCGI
ServerAdmin root at sample.com
DocumentRoot /var/www/website2/
ServerName good.com
Header set P3P "CP='CAO PSA CONi OTR OUR DEM ONL'"
ErrorLog /var/log/httpd/good.com-error.log
TransferLog /var/log/httpd/good.com-access.log
Options ExecCGI
----------------------------------------------------------------------
* 프로그램 기능 및 특징
실행시 이전 설정값을 비교하여 IP변동이 없을때는 그냥 종료하도록
되어 있어 무조건적인 아파치 재실행을 막아 줍니다..
그외..... 소스가 쉽고 짧습니다..
* 기타 버그 및 문의 사항은 게시판에 남겨 주세요..
* 이글은 GPL 을 따르며, 다른곳에 옮기실때는 원제작자 및 사이트를 명시해 주시기 바랍니다.
http://wowdns.com
한정석
--------------------------------------------------------------------
이전에 받았을분들을 위한 간단한 history.
--------------------------------------------------------------------
1. /var/run/vhost.ip -> /etc/http.conf/vhost.ip 로 되었습니다.(2002.2.10)
2. device 변수 누락부분을 고쳤읍니다.
|
|
Page Loading [ 0.03 Sec ]
SQL Time [ 0 Sec ]
|
|
|