다음 이전 차례

4. 리눅스박스 하나로 다수의 웹서비스를?

의뢰인 : 헤이, 나 야한 웹하나 만들게 컴하나 만들어주라!
처리인 : 그럼 돈줘. 잘 만들어줄께.
의뢰인 : 야, 나 돈 별로 없어.
처리인 : 그래? 그럼 밥한끼 사줘라.
의뢰인 : 장난하냐?
처리인 : 반말이냐?
의뢰인 : 퍽!
처리인 : 팍!
퍽퍽~~ 팍팍!!

과연 누가 잘못하고 있는 것일까요? 웹을 하나 띄우기 위해서 컴을 하나 마련한다? 그것도 별로 중요한 자료도 없는 야 한 사이트를 위해 새것을? 처리인은 어떤 생각 을 가지고 밥한끼에 해결한다고 헛소리를 했을까요? 과연 헛소리일까요? WindogNT를 이용해서 한다면 위의 방법을 쓸려면 밥한끼에 안된다는 것을 잘 아실 것입니다. 하하! 밥 한끼에 몇백만원 하냐구요? 설마 단란주점이라고 생각하신 독자가 계신다면 그건 큰 오산입니다. 리눅서가 무슨 돈이 있다고 단란주점에 갑니까? 라면 하나면 끝나는데... Linux에서는 공짜로 한대의 하드웨어에서 복수의 웹서포팅을 할 수 있는 기능이 기본으로 들어가 있습니다.

사용될 Application

  1. Linux (당연하겠죠?)
  2. Apache (기본으로 들어가있겠죠?)

이미 여러분들은 할 수 있는 도구를 다 가지고 있습니다. 다만 사용을 안해서 그렇죠. Linux에서 IP Alias기능을 사용하여 한개의 machine이 복수의 IP를 가지도록 합시다. 알짜 또는 RedHat Linux에서는 IP Alias기능이 커널 단위에서 선택되어져 있기 때문에 커널을 다시 컴파일 할 필요는 없습니다. 하고 싶으시다구여? 그럼 하십시요. 저보고 하라구요? 좀 기다리세요. 아직도 정리중이에요... 다 정리한다음, 통신망 강좌란에 올릴께요. 여하튼 지금은 중요한것이 이것이 아니죠... 일단 Alias를 사용해 봅시다. 여러분들이 만약 X-Window상태라면 다음의 툴을 띄워주시기 바랍니다.

netcfg

이거 말고도 여러 가지 툴들이 있지만, 저는 이것으로 하겠습니다. 자, 네모난 상자에 메뉴가 몇개 뜨죠? 아하  자신의 컴퓨터의 네트워크 설정을 하는 툴킷이네요. 자세히 보시면 여러분들이 수정할 수 있는 부분이 몇가지 있을것입니다. 수정하고 싶으신 분은 지금 바꾸시고 'Save'키를 눌러주시기 바랍니다. 이제 박스의 윗부분을 잘 봅시다. 'Interfaces'라는 키가 있지요? 누르십시오. 그러면 밑의 키에 'Alias'가 보일 것입니다. 자아  일단 alias를 활성화시킬 네트워크 카드를 선택합시다. 여러분의 컴퓨터가 특수한 목적에 사용되지 않는한, eth0 만이 여러분을 반길것입니다. 'lo'는 뭔데 취급도 안하냐구요? 그것은 자기 자신을 뜻합니다. 뭐, 잊으셔도 상관없습니다. 일단 'eth0'를 선택하신 후, 'Alias'키를 누릅시다. 그러면 메뉴가 하나 더뜨죠? 보면 뻔  하죠? 바로 IP를 넣어달라는 것입니다. C-Class까지는 먼저 차지한것과 같아야 합니다만, d-class를 바꿈으로서 이 machine은 복수의 IP를 가지게 되는 것입니다. c,d-class가 뭐냐구요? 한가지 예를 들겠습니다.

 IP : 203.249.231.199
요런 IP가 있다고 합시다.
203부분 : A-Class
249부분 : B-Class
231부분 : C-Class
199부분 : D-Class

즉, A.B.C.D 라고 생각하시면 됩니다. 간단하죠? 자, 이제 'Done'을 선택하시고 Save를 하시고, Active시키면 그때부터 여러분이 입력한 주소가 활성화됩니다. 자, 이제 웹서버에서 설정하는 것만 남았네요.


** 주의 **
여기서는 한가지 상황을 설정해 놓고 이야기를 이끌어가겠습니다.
Alias한 IP  : 203.249.231.199
        URL : nuclear_bumb.babo.net
이 서버의 원래 URL과 IP
        IP  : 203.249.231.50
        URL : mungchungi.babo.net

자아  /etc/httpd/conf 에 놀러가볼까요? 알짜를 사용하신다면, 이만용씨께서 한꺼번에 뭉쳐놓고 한글로 설명해놓은 설정들을 볼 수 있을 것입니다. 우리는, 여기서 제일 맨 끝으로 가야 합니다.


#
# 가상 호스트 예제:
# 거의 모든 아파치 지시자가 VirtualHost 컨테이너에 올 수 있다.
#
#<VirtualHost ip.address.of.host.some_domain.com>
#    ServerAdmin webmaster@host.some_domain.com
#    DocumentRoot /www/docs/host.some_domain.com
#    ServerName host.some_domain.com
#    ErrorLog logs/host.some_domain.com-error_log
#    CustomLog logs/host.some_domain.com-access_log common
#

우잉? 척보면 탁 알아야 하는데... 뭔가 의미가 있지요? 자, 앞의 #를 빼고 하나하나 설정해 봅시다.


<VirtualHost nuclear_bumb.babo.net>
    ServerAdmin nuclear@nuclear_bumb.babo.net
    DocumentRoot /home/nuclear/web_start 
    ServerName nuclear_bumb.babo.net 
    ErrorLog logs/nuclear_bumb.babo.net-error_log
    CustomLog logs/nuclear_bumb.babo.net-access_log common

우잉? 갑자기 쉬워진다는 느낌이 들죠? 이렇게 복수의 것을 만들면 끝! 아, httpd 리스타트(/etc/rc.d/init.d/httpd restart) 한다는것 잊지 마세요. 자아, 이제 얻어터진 의뢰자는 /home/nuclear/web_start에 웹소스를 넣기만 하면 끝입니다. 얻어터져도 싸죠?


다음 이전 차례