2010-07-25 3 views
1

다른 정적 서버를 웹 응용 프로그램에 추가하려고합니다. 따라서 static1.domain.tld 및 static2.domain.tld가 있습니다.다른 정적 서버의 동일한 캐시 사용

정적 콘텐츠를 더 빨리로드하려면 다른 도메인을 사용하는 것이 좋지만 (더 많은 병렬 연결을 동시에), 사용자의 브라우저가 static1.domain.tld/images/whatever.jpgstatic2.domain.tld/images/whatever.jpg을 동일한 것으로 간주하는 방법은 무엇입니까? 파일 "?

헤더를 사용하여이를 수행하는 트릭이 있습니까, 아니면 어떤 파일이 어떤 서버에 있는지 정의해야합니까?

답변

2

아니요, 두 URL이 동일하다는 것을 브라우저에 알릴 방법이 없습니다. 브라우저가 전체 URL로 캐시합니다.

할 수있는 일은 항상 같은 이미지에 대해 동일한 URL을 사용하는 것입니다. 예. A-M으로 시작하는 모든 이미지는 서버 1로 이동하고 N-Z는 서버 2로 이동합니다. 실제 구현에서는 이름이나 그와 비슷한 것을 기반으로하는 해시를 사용합니다. 그러나 그런 종류의 일을하는 라이브러리가있을 것입니다.

1

당신은 이 있어야합니다. 서버는 모두 static.domain.tld으로 전송 된 요청에 응답 할 수 있어야합니다. 이를 달성하는 방법은 여러 가지를 보았지만 모두 저수준이었습니다. 내가 알고있는 두 가지 :

  • 호스트 이름과 IP 주소의 매핑이 시간이 지남에 따라 변경되도록 DNS 라운드 로빈을 사용하십시오. 매우 큰 웹 사이트는 종종이 변형을 사용하여 클라이언트에 가까운 CDN에서 실제로 콘텐츠가 제공됩니다.
  • MAC 주소가 다른 여러 컴퓨터에서 IP 주소를 확인하도록 해킹 된 라우터 구성을 사용합니다. 이는 실제로는 매우 효과적이지만 기계가 물리적으로 가까이 있어야합니다.

무작위적일 수도있는 다른 서버 (예 : 경로의 MD5 해시의 특정 비트)를 기반으로 다른 서버로 이동하여 '가시적 인 수준'으로 확산시킬 수도 있습니다. 무엇보다도 이러한 모든 기술은 소프트웨어 스택의 독립적 인 부분을 사용하여 작동합니다. 원하는 조합으로 사용할 수 있습니다.

관련 문제