가상 호스트란?

가상 호스트가 생겨난 가장 큰 이유는 작은 기업이나 개인같이 제한적인 IP를 가지고 있는 사람들도 몇 백개의 웹 호스팅을 할 수 있게 하기 위해서 였다. 이것은 제한적인 IP를 가지고 있는 사용자들에게는 대단한 희소식이었다. 이렇게 말로 설명해봤자, 잘 이해가 안 갈 것이다(나도 이해가 안 갔으니까!!). 예를 들어 203.241.128.94라는 IP를 가지고 있는 컴퓨터가 있다고 하자. 203.241.128.94의 호스트네임은 myfeel.hoseo.ac.kr이다. 기존에는 하나의 IP에 하나의 호스트네임을 가지고 웹 서비스를 했다. 하지만 가상호스트를 이용해서는 하나의 IP를 가지고 여러개의 호스트네임을 지정해서 줄 수가 있다. 그러니까 203.241.128.94 라는 IP를 myfeel.hoseo.ac.kr , fat.hoseo.ac.kr …..으로도 부를 수 있는 것이다. 한 마디로 웹 브라우저에서 myfeel.hoseo.ac.kr , fat.hoseo.ac.kr…..라고 쳐도 똑같은 페이지가 나온다는 말이다!! 물론 우리가 조금 뒤에 살펴 볼 httpd.conf 파일에 설정을 해주면 각기 다른 페이지가 나오게 할 수 있다.

설정 잡아주기

우선 name 서버의 설정을 해주어야 한다. 여기서는 203.241.128.94라는 IP주소를 두 개의 서로 다른 호스트네임이 가리키게 설정한다.

#cd /var/named/
#vi zone-myfeel.hoseo.ac.kr   /*여기서는 'myfeel.hoseo.ac.kr'로 예를 들었다*/ 
 
------------------------zone-myfeel.hoseo.ac.kr-------------------------------
@               IN      SOA     ns1.myfeel.hoseo.ac.kr.   master.myfeel.hoseo.ac.kr. (
                        1997022700 ; serial
                        28800 ; refresh
                        14400 ; retry
                        3600000 ; expire
                        86400 ; default_ttl
                        )
                IN      NS      ns1.myfeel.hoseo.ac.kr.
                IN      A       203.241.128.94 
                IN      HINFO   "x86 Pentium III Dual" "Wow Linux"
 
                IN      MX      10      myfeel.hoseo.ac.kr.
 
localhost       IN      A       127.0.0.1
;ns             IN      CNAME   @
ns1             IN      CNAME   @
ns2             IN      A       211.180.229.51
bummi           IN      A       203.241.128.99
fat             IN      A       203.241.128.94     /*이 부분을 유심히 보자!!*/
myfeel          IN      A       203.241.128.94    /*이 부분을 유심히 보자!!*/

마지막 두줄을 보면 한 개의 IP를 두 개의 호스트네임이 지정된 것을 볼 수 있다. 저장 한 후에 name서버를 재 시동 시키자!! 그리고 제대로 설정이 잡혔는지 확인해 보자.

#nslookup fat
Server:  myfeel.hoseo.ac.kr
Address:  203.241.128.94
 
Name:    fat.myfeel.hoseo.ac.kr
Address:  203.241.128.94

제대로 설정이 잡혔다면 위와 같이 나올 것이다. 결과가 달라야 한다(필자가 굳이 설명하지 않아도 알 것이다!!).

httpd.conf 설정하기

아파치 설정의 대표적인 파일인 httpd.conf 파일을 설정 해보자!

#vi httpd.conf
------------httpd.conf----------
# If you want to use name-based virtual hosts you need to define at
# least one IP address (and port number) for them.
#
#NameVirtualHost 12.34.56.78:80
NameVirtualHost 203.241.128.94  /*자신의 IP주소를 적어준다*/
 
#
 
<VirtualHost 203.241.128.94>     /*똑같이 적어준다*/   
    ServerAdmin root@myfeel.hoseo.ac.kr   /*관리자의 메일주소이다*/
    DocumentRoot /usr/local/apache/htdocs    /*문서 저장 경로이다*/
    ServerName myfeel.hoseo.ac.kr        /*설정해 준 호스트네임을 적어준다*/ 
    ErrorLog /usr/local/apache/logs/error_log    /*에러로그파일의 경로이다*/
    CustomLog /usr/local/apache/logs/access_log common  /*access 로그파일의 경로이다*/
</VirtualHost>
 
<VirtualHost 203.241.128.94>   /*똑같이 적어준다*/
    ServerAdmin root@myfeel.hoseo.ac.kr  /*관리자의 메일주소이다*/
    DocumentRoot /usr/local/apache/htdocs/mail   /*문서 저장 경로이다*/
    ServerName fat.myfeel.hoseo.ac.kr  /*설정해 준 호스트네임을 적어준다*/
    ErrorLog /usr/local/apache/logs/error_log    /*역시 위와 같다*/
    CustomLog /usr/local/apache/logs/access_log common   /*역시 위와 같다*/
</VirtualHost>
 
<VirtualHost _default_:*>
</VirtualHost>

httpd.conf 파일의 맨 아래를 보면 위와 같은 부분이 나온다. 웹서버를 재 시동한다.
웹 브라우저를 띠워 2개의 호스트주소를 적어보자!! 서로 다른 경로의 페이지가 나온다면 성공이다.

※ 다음은 위와는 반대로 두 개의 IP를 한 개의 웹서버에서 서비스 하는 방법을 알아보자.
123.456.789.123, 203.241.128.99 의 IP가 있다고 하자. 우선 랜카드에는 원래 123.456.789.123을 쓰고 있다. 그럼 203.241.128.99번을 추가시키자! 다음과 같이…

$ifconfig eth0:0 203.241.128.94 up /*여기서 123.456.789.123은 임의로 준 IP이다*/
$route add default gw 123.456.789.123 eth0:0   /*여기도 위와 같다*/

위의 경우는 하나의 랜카드에 하나의 IP주소를 할당할 때를 예로 든 경우이고, 만일 하나의 랜카드에 IP를 계속 추가하고 싶다면 다음과 같이 해주면 된다.

$ifconfig eth0:1 123.456.789.123 up 
$route add default gw 123.456.789.123 eth0:1

늘어날 때마다

eth0:1 
eth0:2 

위와 같은 방식으로 해주면 된다. name 서버에다가 새로운 IP와 호스트네임을 등록시키자!!
이제는 httpd.conf 파일을 설정해 줄 차례다. 위와 다른지 않지만 그래도 한번 보자!!

--------------------httpd.conf------------------
<VirtualHost 203.241.128.99>
    ServerAdmin root@myfeel.hoseo.ac.kr 
    DocumentRoot /usr/local/apache/htdocs
    ServerName bummi.hoseo.ac.kr 
    ErrorLog /usr/local/apache/logs/error_log
    CustomLog /usr/local/apache/logs/access_log common
</VirtualHost>
<VirtualHost 203.241.128.94>
    ServerAdmin root@myfeel.hoseo.ac.kr 
    DocumentRoot /usr/local/apache/htdocs/login
    ServerName myfeel.hoseo.ac.kr 
    ErrorLog /usr/local/apache/logs/error_log
    CustomLog /usr/local/apache/logs/access_log common
</VirtualHost>

위와 같이 설정한 후에 웹 서버를 재시동한다. 그리고 웹 브라우저를 띠운 후에 각각의 IP, 호스트네임으로 접속해 보자. 역시 설정한 대로 페이지가 뜬다면 제대로 설정이 된 것이다.

  • computer/networking/가상_호스트_만들기.txt
  • Last modified: 3 years ago
  • by likewind