와일드카드 도메인을 사용하여 http 차단 없이 이미지 제공

와일드카드 도메인을 사용하여 http 차단 없이 이미지 제공

브라우저가 때때로 동일한 호스트에서 여러 이미지를 기다리는 것을 차단한다는 내용을 읽었으며 페이지 로드 시간을 단축하기 위해 최선을 다하고 있습니다.

한 가지 주의 사항: HTTPS를 통해 파일을 제공해야 합니다.

이것이 실현 가능한지에 대한 의견은 다음과 같습니다.

  1. *.domain.com에 대한 와일드카드 인증서를 설정합니다.
  2. 이미지가 필요할 때마다 파일 이름의 해시 모드 5를 기반으로 숫자를 생성하고 'img' 하위 도메인(예: img1.domain.com, img4.domain.com, img3.domain.com 등)에 추가합니다. ); 해시는 모든 파일 이름이 항상 동일한 하위 도메인을 사용하도록 하므로 브라우저는 이미지를 캐시할 수 있어야 합니다.
  3. 모든 img#을 가리키도록 동적 가상 호스트 레코드를 구성합니다. 하위 도메인을 /var/www/img로

나는 이 계획에 대한 피드백을 찾고 있습니다. 내 우려 사항은 다음과 같습니다.

  1. 내 페이지에 여러 하위 도메인에 대한 https:// 링크가 있으면 경고를 받게 됩니까?
  2. 내가 말하는 동적 가상 호스트 레코드가 가능합니까?
  3. 필요한 처리량을 고려할 때 전체적인 이점을 얻을 수 있을까요? 아마도 페이지당 평균 6개의 이미지가 있을 것이며 각 페이지를 새로 고칠 때 절반만 변경됩니다.

피드백을 보내주셔서 미리 감사드립니다.

답변1

웹 서버를 가리키는 와일드카드 DNS 항목이 있고 가능한 모든 호스트에 응답하도록 구성되어 있으며 와일드카드 SSL 인증서가 있는 경우 구성표가 가능합니다. 하지만 몇 가지 문제가 있습니다.

  1. 각 이미지를 다른 호스트 이름에 배치하면 페이지를 로드하는 데 필요한 DNS 조회 수가 늘어납니다.
  2. 이를 다른 호스트 이름에 배치하면 브라우저가 여러 이미지에 대해 기존 TCP 연결을 재사용하는 기능이 제거됩니다. TCP 연결을 설정하는 것은 "비용이 많이 듭니다". 이미지가 동일한 호스트 이름에 있는 경우 몇 가지 연결을 설정하고 재사용하는 대신 이제 각 이미지에 대해 연결을 설정해야 합니다.

일반적으로 서비스 이미지에 대한 몇 가지 모범 사례는 다음과 같습니다.

  1. 기본 도메인이 아닌 다른 호스트 이름에서 이미지를 로드하되 위에 언급된 이유 때문에 하나 또는 두 개의 다른 호스트 이름으로 제한합니다.
  2. 해당 호스트 이름에 쿠키가 사용되지 않았는지 확인하십시오. 그러면 브라우저가 요청과 함께 쿠키를 보낼 필요가 없습니다.
  3. 해당 호스트 이름에 제공되는 콘텐츠에 대해 캐싱이 활성화되어 있는지 확인하세요(일반적으로 SSL에는 적용되지 않음).
  4. 가능하면 이미지를 결합하고 CSS 스프라이트를 사용하세요.
  5. 다른 분들은 잘 지내셨던 분들이 많더라구요문서화 다른 곳에서.

답변2

  1. 아니요, 모두 SSL 및 유효한 인증서라면 문제가 발생하지 않습니다.
  2. 예, 적어도 아파치에서는 한 줄을 설정하는 것만큼 간단합니다.ServerAlias *.domain.com
  3. 실제로 현재 상태는 아닙니다.

더 적합한 솔루션:

경량 서버(예: 무거운 모듈을 로드하지 않고(경량 프로세스) 다른 도메인에 있는 lighttpd를 사용하고 적절한 설정으로 서버당 하나만 사용하십시오. 또는 더 나은 방법으로는 다음과 같이 nginx를 서버로 사용하는 것입니다.

  1. 다른 도메인/포트/인증서는 필요하지 않습니다.
  2. nginx는 정적 콘텐츠를 제공하고 원래의 더 무거운 서버에 대한 '동적' 요청을 위한 역방향 프록시 서버 역할을 합니다. 이 서버는 원하는 다른 서버의 다른 포트/IP에서 로컬로 실행됩니다.
  3. nginx에서 적절한 설정을 지정합니다(예: keepalive, 작업자 등).
  4. HTTPS를 제공하는 데 문제가 없습니다

관련 정보