웹 호스팅

호스팅 서비스

죠의 컴퓨터 가게 온라인과 메리의 골동품 경매를 크기가 큰 웹 사이트라고 가정해보자. 죠와 메리가 직접 자체 서버를 구매하고 서버 소프트웨어를 직접 유지보수하는 대신, 죠와 메리에게 대여할 수 있는 고성능 웹 서버들로 구성된 랙을 아이린의 ISP가 가지고 있다.

죠는 아이린의 ISP가 구매해 유지보수하고 있는 전용 웹 서버를 임대한다. 아이린 ISP는 대량으로 서버 장비를 구매할 수 있으며 안정적이고 검증되었으며 비용이 저렴한 장비를 선택할 수 있다.

가상 호스팅

호스트 정보가 없는 가상 서버 요청

만약 http://www.joes-hardware.com/index.html을 요청하면, 브라우저는 www.joes-hardware.com/ 에 연결을 하지만, HTTP/1.0 요청은 호스트 명에 대해 별다른 언급없이 "GET/index.htm"서버가 여러 개의 사이트를 가상 호스팅하고 있으면, 사용자가 어떤 가상 웹 사이트로 접근하려고 하는것인지 아는 데 필요한 정보가 충분하지 않다.

가상 호스팅 동작하게 하기

URL 경로를 통한 가상 호스팅 - 공용 서버에 있는 각 가상 사이트에 서로 다른 URL 경로를 할당해서 각각을 강제로 구분할 수 있다.
포트번호를 통한 가상 호스팅 - 경로 명을 변경하는 대신, 웹 서버에 각각 다른 포트번호를 할당할 수 있다.
ip주소를 통한 가상 호스팅 - 각 가상 웹 사이트에 유일한 ip주소를 한 개 이상 부여한다
HOST 헤더를 통한 가상 호스팅 - 브라우저와 서버 개발자들은서버가 원 호스트명을 받아 볼수있게 HTTP를 확장했다. 모든 요청에 호스트명(그리고 포트)을 Host 확장 헤더에 기술해서 전달한다.

HTTP/1.1 Host 헤더

문법과 사용 방법

Host = "Host" ":" 호스트[":"포트]

Host 헤더의 누락 - 아직 사용되고 있는 몇몇 낡은 브라우저들은 Host 헤더를 보내지 않는다.

Host 헤더 해석하기 - 모든 웹 서버는 HTTP/1.1을 통해 오는 리소스를 결정하려면 다음과 같은 규칙을 사용해야 한다

HTTP 요청 메시지에 전체 URL이 기술되어 있으면, Host 헤더에 있는 값은 무시하고 URL을 사용한다
HTTP 요청 메시지에 있는 URL 에 호스트 명이 기술되어 있지 않고 요청에 Host헤더가 있으면, 호스트 명과 포트를 Host 헤더에서 가져온다.
1단계나 2단계에서 호스트를 결정할 수 없으면 클라이언트에 400 Bad Request 응답을 반환한다.
 HTTP 헤더와 프락시 - 프락시를 사용하도록 구성할 때 버전이 오래된 애플이나 포인트캐스트 클라이언트는 실수로 원 서버의 이름이 아닌 프락시의 이름을 Host 헤더에 담아 전송한다

안정적인 웹 사이트 만들기

미러링 된 서버 팜

서버 팜은 서로 대신할 수 잇고 식별할 수 있게 설정된 웹 서버들의 집합니다. 서버팜의 서버에 잇는 콘텐츠들은 한 곳에 문제가 생기면 다른 한 곳에서 대신 전달할 수 있게 미러링할 수 있다. 
미러링된 서버 팜에서, 마스터 원 서버는 복제 원 서버에 콘텐츠를 보낼 책임이 있다. 
미러링 된 웹 서버에는 다른 위치에 있는 콘텐츠와 정확히 같은 복제본이 있다. 
마스터 서버는 클라이언트에게 콘텐츠를 제공하면서 복제 서버들에게 콘텐츠를 퍼트리는 일을 한다.
  1. HTTP 리다이렉션 - 콘텐츠에 대한 URL은 마스터 서버의 IP를 가리키고, 마스터 서버는 요청을 받는 즉시 복제 서버로 리다이렉트 시킨다

  2. DNS 리다이렉션 - 콘텐츠의 URL은 네 개의 IP주소를 가리킬 수 있고, DNS 서버는 클라이언트에게 전송할 IP주소를 선택할 수 있다.

콘텐츠 분산 네트워크

콘텐츠 분산 네트워크는 특정 콘텐츠의 분산을 목적으로 하는 단순한 네트워크이다. 네트워크의 노드는 서버, 대리서버, 혹은 프락시 서버가 될 수 있다.

CDN의 대리 캐시

대리 캐시는 복제 원 서버를 대신해 사용될 수 있다.
대리서버는 리버스 프락시라고도 불리며, 웹 서버처럼 콘텐츠에 대한 요청을 받는다
대리 서버는 보통 수요에 따라서 동작한다
대리 서버는 원 서버의 전체 콘텐츠를 복사하지 않는다
CDN이 대리 서버보다 캐시를 계층화하기 더 어렵다 

CDN의 프락시 캐시

프락시 캐시는 어떤 웹 서버 요청이든지 다 받을 수 있다.
프락시 캐시의 콘텐츠는 요청이 있을 때만 저장될 것이고 원본 서버 콘텐츠를 정확히 복제한다는 보장이 없다
레이어2 혹은 레이어3 장비가 중간에서 웹 트래픽을 가로채 처리하기도 한다
가로채기 설정은, 클라이언트와 서버 사이의 모든 HTTP 요청이 물리적으로 캐시를 거치게 네트워크 설정을 할 수 있는지에 따라 달라진다.

Last updated