브라우저가 때때로 동일한 호스트에서 여러 이미지를 기다리는 것을 차단한다는 내용을 읽었으며 페이지 로드 시간을 단축하기 위해 최선을 다하고 있습니다.
한 가지 주의 사항: HTTPS를 통해 파일을 제공해야 합니다.
이것이 실현 가능한지에 대한 의견은 다음과 같습니다.
- *.domain.com에 대한 와일드카드 인증서를 설정합니다.
- 이미지가 필요할 때마다 파일 이름의 해시 모드 5를 기반으로 숫자를 생성하고 'img' 하위 도메인(예: img1.domain.com, img4.domain.com, img3.domain.com 등)에 추가합니다. ); 해시는 모든 파일 이름이 항상 동일한 하위 도메인을 사용하도록 하므로 브라우저는 이미지를 캐시할 수 있어야 합니다.
- 모든 img#을 가리키도록 동적 가상 호스트 레코드를 구성합니다. 하위 도메인을 /var/www/img로
나는 이 계획에 대한 피드백을 찾고 있습니다. 내 우려 사항은 다음과 같습니다.
- 내 페이지에 여러 하위 도메인에 대한 https:// 링크가 있으면 경고를 받게 됩니까?
- 내가 말하는 동적 가상 호스트 레코드가 가능합니까?
- 필요한 처리량을 고려할 때 전체적인 이점을 얻을 수 있을까요? 아마도 페이지당 평균 6개의 이미지가 있을 것이며 각 페이지를 새로 고칠 때 절반만 변경됩니다.
피드백을 보내주셔서 미리 감사드립니다.
답변1
웹 서버를 가리키는 와일드카드 DNS 항목이 있고 가능한 모든 호스트에 응답하도록 구성되어 있으며 와일드카드 SSL 인증서가 있는 경우 구성표가 가능합니다. 하지만 몇 가지 문제가 있습니다.
- 각 이미지를 다른 호스트 이름에 배치하면 페이지를 로드하는 데 필요한 DNS 조회 수가 늘어납니다.
- 이를 다른 호스트 이름에 배치하면 브라우저가 여러 이미지에 대해 기존 TCP 연결을 재사용하는 기능이 제거됩니다. TCP 연결을 설정하는 것은 "비용이 많이 듭니다". 이미지가 동일한 호스트 이름에 있는 경우 몇 가지 연결을 설정하고 재사용하는 대신 이제 각 이미지에 대해 연결을 설정해야 합니다.
일반적으로 서비스 이미지에 대한 몇 가지 모범 사례는 다음과 같습니다.
답변2
- 아니요, 모두 SSL 및 유효한 인증서라면 문제가 발생하지 않습니다.
- 예, 적어도 아파치에서는 한 줄을 설정하는 것만큼 간단합니다.
ServerAlias *.domain.com
- 실제로 현재 상태는 아닙니다.
더 적합한 솔루션:
경량 서버(예: 무거운 모듈을 로드하지 않고(경량 프로세스) 다른 도메인에 있는 lighttpd를 사용하고 적절한 설정으로 서버당 하나만 사용하십시오. 또는 더 나은 방법으로는 다음과 같이 nginx를 서버로 사용하는 것입니다.
- 다른 도메인/포트/인증서는 필요하지 않습니다.
- nginx는 정적 콘텐츠를 제공하고 원래의 더 무거운 서버에 대한 '동적' 요청을 위한 역방향 프록시 서버 역할을 합니다. 이 서버는 원하는 다른 서버의 다른 포트/IP에서 로컬로 실행됩니다.
- nginx에서 적절한 설정을 지정합니다(예: keepalive, 작업자 등).
- HTTPS를 제공하는 데 문제가 없습니다