HTTP 완벽가이드 18장

18장 웹 호스팅

웹 호스팅의 가장 중요한 속성들과 그것들이 어떻게 HTTP 애플리케이션과 상호작용하는지 알아본다.

1. 호스팅 서비스

  • 전문적으로 서버실을 짓고 도메인을 등록하고 네트워크 대역폭을 구매하는 기술과 시간을 가진 업체들이 있다.
  • 물리적인 장비 관리에서 고객이 직접 콘텐츠를 제공할 수 있는 총체적인 웹 호스팅까지 다양한 종류의 서비스들이 있다.

2. 가상 호스팅

  • 웹 호스팅 업자는 컴퓨터 한 대를 여러 고객이 공유하게 해서 저렴한 웹 호스팅 서비스를 제공하는데, 이를 공유 호스팅 또는 가상 호스팅이라 부른다.
  • 가상 호스팅은 비용, 공간, 관리에 이점이 있다.
  • 호스팅 업자는 복제 서버 더미(서버 팜)를 만들고 서버 팜에 부하를 분산할 수 있다.
  • 수많은 가상 웹사이트를 호스팅 하므로 관리자는 훨씬 편해진다.

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

  • HTTP/1.0 명세는 공용 웹 서버가 호스팅하고 있는 가상 웹 사이트에 누가 접근하고 있는지 식별하는 기능을 제공하지 않는다.
  • 여러 개의 요청이 완전히 다른 문서를 요청을 하더라도, 요청 자체가 똑같이 생겼다.
  • HTTP 대리 서버(리버스 프락시)와 인터셉트 프락시는 어떤 사이트를 요청하는지에 관한 정보가 필요하다.

2.2 가상 호스팅 동작하게 하기

URL 경로를 통한 가상 호스팅

  • 서버가 어떤 사이트를 요청하는 것인지 알 수 있게 URL에 특별한 경로 컴포넌트를 추가한다.
    • 경로에 있는 정보를 통해 해당 URL을 분석한다.
    • GET joes/index.html
    • GET mary/index.html
  • 일반적으로, URL 기반의 가상 호스팅은 좋지 않은 방법이다.

포트 번호를 통한 가상 호스팅

  • 각 사이트에 다른 포트번호를 할당하여, 분리된 웹 서버의 인스턴스 요청 처리를 한다.
  • 사용자는 URL에 비표준 포트를 쓰지 않고서도 리소스를 찾길 원하는 문제가 생긴다.

IP 주소를 통한 가상 호스팅

  • 각 가상 웹 사이트에 유일한 IP 주소를 한 개 이상 부여한다.

  • 모든 가상 서버의 IP 주소는 같은 공용 서버에 연결되어 있다.

    문제점들

    • 컴퓨터 시스템이 연결할 수 있는 장비의 IP의 개수에 제한이 있다.
    • 가상 사이트를 많이 가지고 있는 호스팅 업자는 호스팅 하는 모든 웹 사이트에 할당할 가상 IP 주소를 충분히 얻지 못할 수 있다.
    • 부하 균형의 구조상, 용량을 늘리기 위해 서버를 복제하면서, 각 복제된 서버에 IP 주소를 부여해야 하므로 IP 주소는 복제 서버의 개수만큼 더 필요하게 된다.

Host 헤더를 통한 가상 호스팅

  • 모든 요청에 호스트명을 Host 확장 헤더에 기술해서 전달한다.

2.3 HTTP/1.1 Host 헤더

  • 가상 서버는 매우 흔하기 때문에 대부분의 HTTP 클라이언트가 HTTP/1.1과 호환되지 않더라도, Host헤더는 구현한다.
  • Host = "Host" ":" 호스트[ ":" 포트 ]

3. 안정적인 웹 사이트 만들기

3.1 미러링 된 서버 팜

  • 서버 팜은 서로 대신할 수 있고 식별할 수 있게 설정된 웹 서버들의 집합이다.
  • 서버팜의 서버에 있는 콘텐츠들은 한 곳에 문제가 생기면 다른 한 곳에서 대신 전달할 수 있게 미러링 할 수 있다.

HTTP 리다이렉션

  • 콘텐츠에 대한 URL은 마스터 서버의 IP를 가리키고, 마스터 서버는 요청을 받는 즉시 복제 서버로 리다이렉트시킨다.

DNS 리다이렉션

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

3.2 콘텐츠 분산 네트워크

  • 콘텐츠 분산 네트워크(CDN)는 특정 콘텐츠의 분산을 목적으로 하는 단순한 네트워크이다.

3.3 CDN의 대리 캐시

  • 대리 서버는 콘텐츠에 대한 요청을 받는다.
  • 원 서버 집합을 대신해 요청을 받는다.

미러링 된 서버와의 차이점

  • 수요에 따라서 동작한다.
  • 원 서버의 전체 콘텐츠를 복사하지 않는다.
  • 클라이언트가 요청하는 콘텐츠만 저장한다.

3.4 CDN의 프락시 캐시

  • 대리 서버를 사용하면, 프락시 캐시의 콘텐츠는 요청이 있을 때만 저장되고 원본 서버 콘텐츠를 정확히 복제한다는 보장이 없다.
  • 요청이 있을 때만 저장하는 프락시 캐시는 스위치 혹은 라우터가 중간에서 웹 트래픽을 가로채 처리한다.

4. 웹 사이트 빠르게 만들기

  • 콘텐츠를 분산시키면, 그 콘텐츠를 사용자에게 더 가깝게 만들어 주므로 콘텐츠를 서버에서 클라이언트로 전송하는 시간이 단축된다.
  • 콘텐츠를 인코딩하는것

5. WebDav

  • 웹 분산 저작과 버저닝(Web Distributed Authoring and Versioning)
  • 공동 저작에 적합한 플랫폼을 제공하려고 HTTP를 확장하는데 집중한다.

댓글

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×