[HTTP 완벽 가이드] 18장. 웹 호스팅

밈무·2023년 3월 5일
0

HTTP완벽가이드

목록 보기
13/14

전용 호스팅

ISP가 사용자에게 고성능 웹 서버를 대여해준다. 크기가 큰 웹 사이트를 위해 사용된다.

가상 호스팅

컴퓨터 한 대를 여러 고객이 공유하기 해서 저렴한 웹 호스팅 서비스를 제공한다. 주로 트래픽이 높지 않은 사이트에서 비용절약을 위해 사용한다.

최종 사용자는 가상 호스팅에 있는 웹 사이트를 물리적으로 분리된 것처럼 느끼지만, 사실은 물리적으로 같은 서버에서 호스팅 되는 것이다.

호스팅 업자는 복제 서버더미(=서버 팜)를 만들고 서버 팜에 부하를 분산한다. 팜에 있는 각 서버는 다른 서버를 복제한 것이다.

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

HTTP/1.0

HTTP/1.0에서는 공용 웹 서버가 호스팅하고 있는 가상 웹 사이트에 누가 접근하고 있는지 식별하는 기능을 제공하지 않는 설계 결함이 있다. (가상 호스팅을 고려하지 않아서)
서버가 여러 개의 사이트를 가상 호스팅하고 있으면 사용자가 어떤 가상 웹 사이트로 접근하려고 하는지 알 수 없다.

예를 들어 다른 사이트의 index.html 접속하려 하는데 똑같이 GET /index.html 요청을 전송한다.

가상 호스팅 동작하게 하기

HTTP/1.1

  • URL 경로를 통한 가상 호스팅
    논리적인 웹 사이트마다 특정 경로를 붙인다.
    불필요한 접두어가 생겨 나쁜 방법이다. 거의 사용하지 x
    ex) https://www.abc.com/abc/index.html -> GET /abc/index.html
    https://www.qwe.com/qwe/index.html -> GET /qwe/index.html
  • 포트번호를 통한 가상 호스팅
    웹 서버에 각각 다른 포트번호를 사용한다.
    비표준 프로토콜을 붙여야 하기 때문에 같은 문제 발생.
  • IP 주소를 통한 가상 호스팅
    가상 웹 사이트에 유일한 가상 IP 주소를 한 개 이상 부여한다.
    서버가 목적지 IP 주소를 보고 같은 공용 서버에서도 클라이언트가 어떤 웹 사이트에 연결하려 하는지 알 수 있다.
    IP 주소 부족 문제가 생길 수 있지만 널리 사용되는 방식이다.
  • Host 헤더를 통한 가상 호스팅
    Host 확장헤더에 호스트명을 기술해서 전달할 수 있도록 HTTP 를 확장
    -> 서버가 원 호스트명을 받아 볼 수 있다.

안정적인 서버 만들기

미러링된 서버 팜

서버팜의 서버에 있는 콘텐츠들은 미러링 되어 있다. 한곳에 문제가 생기면 다른 한 곳에 대신 전달할 수 있다.
미러링된 서버들은 보통 계층적인 관계에 있다.

  • 마스터 원서버 : 마치 콘텐츠의 원본제작자처럼 행동
  • 복제 원 서버 : 마스터 원서버로부터 미러링된 서버

서버 팜에 배포하는 방법

  • 네트워크 스위치 사용
    네트워크 스위치로 서버에 분산 요청을 보낸다.
    서버에 호스팅 되고 있는 각 웹사이트의 IP 주소 = 스위치 주소

분산된 미러링 서버에서 요청이 특정 서버로 가는 방법

  • HTTP 리다이렉션 : 마스터 서버가 복제 서버로 리다이렉트
  • DNS 리다이렉션 : DNS 서버가 클라이언트에게 전송할 IP 주소 선택

콘텐츠 분산 네트워크(CDN)

CDN의 대리 캐시

대리캐시 = 리버스캐시 : 복제 원서버를 대신해서 사용한다.

  • 대리 서버와 미러링 서버의 차이
    대리서버는 보통 수요에 따라 동작하여 전체 콘텐츠를 복사하지 않고 클라이언트 가 요청한 콘텐츠만 저장한다.

CDN의 프락시 캐시

대리서버를 사용하면 프락시 캐시의 콘텐츠는 요청이 있을 때만 저장된다.
이는 레이어2 혹은 레이어3 장비(스위치나 라우터)가 중간에서 웹 트래픽을 가로채서 처리하기도 한다.

빠른 웹 사이트 만들기

서버팜, 분산 프락시 캐시, 대리서버는 혼잡을 조절하고 네트워크 트래픽을 분산시킨다.
콘텐츠를 분산시키면 콘텐츠의 위치가 사용자와 더 가까워지므로 콘텐츠를 서버에서 클라이언트로 전송하는 시간이 단축된다.

웹 사이트 속도를 높이는 또다른 방법은 콘텐츠를 인코딩 하는 것이다. (콘텐츠 압축)

0개의 댓글