이름기반 가상호스트 지원 > 리눅스 Tip

본문 바로가기
 

이름기반 가상호스트 지원

페이지 정보

작성자 no_profile 차동박 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 댓글 0건 조회 16,602회 작성일 08-06-23 10:58

본문

이름기반 가상호스트 지원
 
 
 

이름기반 대 IP기반 가상호스트

IP기반 가상호스트는 연결한 IP 주소를 가지고 서비스할 가상호스트를 결정한다. 그래서 각 호스트는 서로 다른 IP 주소를 가져야 한다. 이름기반 가상호스트의 경우 서버는 클라이언트가 HTTP 헤더로 호스트명을 알려주길 바란다. 이런 방법으로 한 IP 주소로 여러 다른 호스트를 서비스할 수 있다.
이름기반 가상호스트는 DNS 서버가 각 호스트명이 올바른 IP 주소로 대응하도록 가상호스트를 설정하고, 다른 호스트명을 구별할 수 있도록 아파치 웹서버를 설정하기만 하면되므로 더 간단하다. 이름기반 가상호스트는 또 여러 IP 주소가 필요없다. 그러므로 특별히 IP기반 가상호스트를 선택할 이유가 없다면 이름기반 가상호스트를 사용해야 한다. IP기반 가상호스트를 사용해야할 이유로는:
  • 이름기반 가상호스트를 지원하지않는 오래된 클라이언트들이 있다. 이름기반 가상호스트를 사용하려면 클라이언트가 HTTP Host 헤더를 보내야 한다. 이는 HTTP/1.1에서는 필수이고, 최근 모든 HTTP/1.0 브라우저들도 확장으로 지원한다. 만약 이름기반 가상호스트를 사용하면서 오래된 클라이언트를 지원해야 한다면 이 문서 끝에 있는 방법을 살펴봐라.
  • SSL 프로토콜의 성격상 SSL 보안서버에서 이름기반 가상호스트를 사용할 수 없다.
  • 어떤 운영체제나 네트웍 장치는 다른 IP 주소를 사용하지 않으면 호스트를 구별하지 못하는 네트웍 사용량(bandwidth) 관리기술을 사용한다.
top

이름기반 가상호스트 사용하기

이름기반 가상호스트를 사용하려면 서버는 연결을 받을 IP 주소를 (아마 포트도) 정해야 한다. 이는 NameVirtualHost 지시어로 가능하다. 일반적으로 서버의 모든 IP 주소를 사용한다면 NameVirtualHost의 아규먼트로 *를 사용한다. 여러 포트를 사용할 (예를 들어, SSL을 사용할) 계획이라면 *:80과 같이 아규먼트에 포트를 추가해야 한다. NameVirtualHost 지시어에 IP 주소를 적어주었다고 서버가 자동으로 그 IP 주소를 기다리지 않음을 주의하라. 자세한 내용은 아파치가 사용할 주소와 포트 설정하기를 참고하라. 또, 여기서 지정한 IP 주소는 서버의 네트웍 인터페이스이어야 한다.
다음 단계는 서비스하려는 호스트별로 <VirtualHost> 블록을 만드는 일이다. <VirtualHost>> 지시어의 아규먼트는 NameVirtualHost 지시어의 아규먼트(예를 들어, IP 주소나 모든 주소를 뜻하는 *)와 같아야 한다. <VirtualHost>> 블록 안에는 최소한 서비스할 호스트를 지정하는 ServerName 지시어와 호스트의 내용이 파일시스템 어디에 있는지를 지정하는 DocumentRoot 지시어가 필요하다.

주 호스트가 없어진다

기존에 사용하던 웹서버에 가상호스트를 추가한다면 기존에 사용하던 호스트에 대한 <VirtualHost> 블록도 추가해야 한다. 이 블록에 포함하는 ServerNameDocumentRoot는 전체 ServerNameDocumentRoot와 같아야 한다. 설정파일에서 이 가상호스트를 가장 먼저 적으면 기본 호스트가 된다.
예를 들어 www.domain.tld 도메인을 서비스하고 있었는데 같은 IP 주소에 www.otherdomain.tld란 가상호스트를 추가하고 싶다고 가정하자. httpd.conf에 다음과 같이 추가하면 된다:
NameVirtualHost *:80

<VirtualHost *:80>
ServerName www.domain.tld
ServerAlias domain.tld *.domain.tld
DocumentRoot /www/domain
</VirtualHost>

<VirtualHost *:80>
ServerName www.otherdomain.tld
DocumentRoot /www/otherdomain
</VirtualHost>
NameVirtualHost<VirtualHost> 지시어 둘 모두 * 대신 직접 IP 주소를 지정할 수도 있다. 예를 들어, 이런식으로 한 IP 주소에 여러 이름기반 가상호스트들을 돌리고, 다른 주소에 IP기반 혹은 이름기반 가상호스트들을 돌릴 수 있다.
어떤 서버는 여러 이름으로 접속할 수 있길 바란다. 이는 <VirtualHost> 섹션 안에 ServerAlias 지시어를 사용하여 가능하다. 예를 들어 위의 첫번째 <VirtualHost> 블록에서 ServerAlias 지시어를 사용하면 열거한 이름으로 같은 웹사이트를 볼 수 있다:
ServerAlias domain.tld *.domain.tld
domain.tld 도메인에 있는 모든 호스트에 대한 요청을 www.domain.tld 가상호스트가 서비스한다. 이름을 줄때 와일드카드 문자 *?를 사용할 수 있다. 물론 ServerName이나 ServerAlias에 이름을 적어주었다고 끝이 아니다. 먼저 이 이름들이 서버의 IP 주소로 대응하도록 DNS 서버를 알맞게 설정해야 한다.
마지막으로 <<VirtualHost>> 안에 다른 지시어들을 사용하여 가상호스트를 자세히 설정할 수 있다. 대부분의 지시어를 사용할 수 있으며, 관련된 가상호스트의 설정만을 변경한다. 어떤 지시어가 사용가능한지 알려면 지시어의 사용장소를 확인하라. (<<VirtualHost>> 안이 아닌) 주서버설정에서 지정한 설정 지시어는 가상호스트에 같은 설정 지시어가 없는 경우에만 사용된다.
요청을 받으면 서버는 먼저 NameVirtualHost에서 지정한 IP 주소인지 검사한다. 그렇다면 그 IP 주소를 가진 <VirtualHost> 섹션들에서 요청한 호스트명과 일치하는 ServerName이나 ServerAlias를 찾는다. 찾으면 그 설정을 사용한다. 적절한 가상호스트를 찾지못하면, IP 주소에 해당하는 가상호스트들중 첫번째 것을 사용한다.
결과적으로 처음에 나온 가상호스트가 기본 가상호스트가 된다. IP 주소가 NameVirtualHost 지시어에 해당하면, 주서버DocumentRoot절대로 사용하지 않는다. 특정 가상호스트에 해당하지않는 요청을 설정하려면 설정을 <VirtualHost>에 담고 설정파일에서 먼저 나오도록 하면 된다.

댓글목록

등록된 댓글이 없습니다.

Total 138건 6 페이지
리눅스 Tip 목록
번호 제목 글쓴이 조회 날짜
48 no_profile 차동박 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 9272 07-05
47 no_profile 차동박 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 8158 07-05
46 no_profile 차동박 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 8391 07-03
45 no_profile 차동박 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 8693 06-30
44 no_profile 차동박 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 9953 06-30
43 no_profile 차동박 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 9074 06-29
42 no_profile 차동박 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 15508 06-28
41 no_profile 차동박 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 11934 06-28
40 no_profile 차동박 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 15519 06-25
39 no_profile 차동박 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 8898 06-23
열람중 no_profile 차동박 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 16603 06-23
37 no_profile 차동박 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 9593 06-23
36 no_profile 차동박 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 9297 06-20
35 no_profile 차동박 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 9545 06-19
34 no_profile 차동박 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 15051 06-19
33 no_profile 차동박 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 18312 06-19
32 no_profile 차동박 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 10 06-18
31 no_profile 차동박 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 12400 06-18
게시물 검색