BBUWOO'S [ LIKE UNIX ] WORLD Home > Lecture > Apachev > Apachev-6  

HOME
WHAT's BBUWOO?
LInux AnNyung
Open Source
    GitHUB
    GitHUB (for PHP)
LECTURE
MINI LECTURE
QnA BOARD
ENGLISH POEM


WARNNING

강좌의 모든 권리는 본인 김정균에게 있으며 이 강좌를 상업적 목적 으로 이용
하거나 다른 곳으로 옮길시에는 본인의 허락이 있어야 한다. 이글의 가장 최신글은
http://oops.org 에서 확인할수 있다.



3. Name Based Virtual Hosting (2)

  1. httpd.conf의 BindAddress 부분과 제일 하단의 <VirtualHost host.some_domain.com> </VirtualHost> 부분의 주석을 풀어 줌으로서 이를 설정을 하게 된다. 자세한 예는 아래를 참고하자.



 Hanterm - cat /etc/httpd/conf/httpd.conf

 [root@bbuwoo /etc]$ cat /etc/httpd/conf/httpd.conf

                                .
                                .
                                중략
                                .
                                .

   # 서버루트(ServerRoot): 서버의 설정, 에러, 로그 파일 등이 놓일 
   # 기본 상위 디렉토리
   # 주의!  만약 서버루트를 NFS(또는 기타 네트웍)로 마운트한 파일
   # 시스템에 두고자 할 때는 LockFile 문서를 꼭 읽어보기 바랍니다.
   # 이를 읽어두면 나중에 생길 문제를 예방할 수 있습니다.

   ServerRoot /usr

   # 결합주소(BindAddress): 이 옵션을 가지고 가상 호스트를 지원할 수 
   # 있습니다. 이 옵션은 서버가 어느 IP 주소에 귀기울일 것인지 통보할 
   # 때 사용합니다. "*" 이거나 또는 IP 주소 그리고 완전한 형식의 도메인
   # 이름을 사용할 수 있습니다.  VirtualHost 지시자도 함께 참고하시기
   # 바랍니다.

   BindAddress *  <- 이것의 주석을 풀어준다.

   # 에러기록(ErrorLog): 에러 기록 파일의 위치.
   # / 로 시작하지 않으면 ServerRoot 가 경로명 앞에 붙습니다.

   ErrorLog /var/log/httpd/error_log

   # 기록수위: error_log에 기록될 메시지의 수를 제어합니다.
   # debug, info, notice, warn, error, crit, alert, emerg 중 하나를
   # 설정할 수 있습니다.

   LogLevel warn
                                .
                                .
                                중략
                                .
                                .

   # Listen: 아파치를 기본값에 추가하여 특정 IP 주소들 또는 포트와
   # 결합(bind) 시키려 할 때 사용합니다.  VirtualHost 명령 또한 
   # 참고하십시오.

   #Listen 3000
   #Listen 12.34.56.78:80

   # 가상호스트(VirtualHost): 서버 머신이 여러 주소에 대하여 IP 패킷을
   #  받을 수 있도록 설정한 상태에서 아파치 데몬이 하나의 이상의 서버
   # 주소에 대하여 요청을 처리할 수 있도록 해줍니다.
   # ifconfig alias 플래그 또는 VIF 와 같은 커널 패치를 통해 할 수
   # 있습니다.
   # (리눅스는 alias 기능을 커널 안에 내장하고 있습니다)

   #<VirtualHost 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
   #TransferLog logs/host.some_domain.com-access_log
   #</VirtualHost>

   # 여기서 부터가 Virtual Host 설정 부분임 

   <VirtualHost 210.124.6.213>
   ServerAdmin www@www.oops.kr.net
   DocumentRoot /home/httpd/www
   ServerName www.oops.kr.net
   ErrorLog logs/www.error_log
   TransferLog logs/www.access_log
   </VirtualHost>

   NameVirtualHost 210.124.6.213 <- 이 부분을 주의

   <VirtualHost 210.124.6.213>
   ServerAdmin bbuwoo@bbuwoo.oops.kr.net
   DocumentRoot /home/httpd/bbuwoo
   ServerName bbuwoo.oops.kr.net
   ErrorLog logs/bbuwoo.error_log
   TransferLog logs/bbuwoo.access_log
   </VirtualHost>

 [root@bbuwoo /etc]$



    여기서 조심해야 한다. 이제껏은 IP Based Virtual Hosting과 별 다른 바가 없었으나 httpd.conf file의 설정에서 약간 달라지게 된다. 이것은 Apache 1.3 version 이전의 버젼과의 차이이기도 하다.

    위의 예제를 보면 NameVirtualHost 210.124.6.213 라는 line을 볼수가 있다. 즉 하나의 IP address에 여러개를 alias하기 위해서는 이렇게 Name VirtualHost 라는 지시자를 이용해서 어떤 IP address에 alias를 해서 사용할 것인지를 지정해 줘야 한다.

    Name VirtualHost 지시자를 지정을 해 주지 않으면 어떤 주소로 접속을 하더라도 제일 먼저 설정된 VirtualHost가 뜨게 되는 것이다. 정말 주의해야 한다.

    그리고 <VirtualHost host.som_domain.com> 부분에는 꼭 IP address 로 지정을 해 주어야 한다. 여기에 Domain Name으로 적용을 시켜서는 안된다.

    또한 ServerName 지시자를 생략하면 접근할 길이 없으므로 이 지시자 역시 꼭 설정해 주기를 바란다.



  1. Name Server의 설정을 마쳤으면 새로운 적용을 위해서 Named를 재실행 하도록 한다.



 Hanterm - nslookup

 [root@bbuwoo /etc]$ ps ax | grep httpd <- httpd의 PID를 찾는다.

     301  ?  S    0:13 httpd 
   11820  p0 S    0:00 grep httpd

 [root@bbuwoo /etc]$ kill -HUP 301 <- httpd를 reflesh한다.
 [root@bbuwoo /etc]$



다음은 간단한 Name Based Virtual Hosting의 실례를 보도록 하겠다.



>> 이전 : Name Based Vritual Hosting (1)
>> 다음 : Name Based Vritual Hosting 실례



    



 Home > Lecture > Apachev > Apachev-6

Copyright 1997-2024 JoungKyun Kim 
LAST MODIFIED: 2017/01/18