
S3를 원본으로 사용하여 CloudFront 배포판을 구성했습니다.
Amazon 가이드에 따라 "객체 자동 압축"을 활성화했습니다. 배포 상태가 "온라인"으로 표시될 때까지 기다렸다가 모든 파일을 무효화했습니다.
내 응답 헤더는 다음과 같습니다.
Age:5
Connection:keep-alive
Content-Length:232359
Content-Type:application/javascript
Date:Sat, 03 Mar 2018 15:39:10 GMT
Last-Modified:Sat, 03 Mar 2018 15:37:32 GMT
Server:AmazonS3
Vary:Accept-Encoding
Via:1.1 4dbdc57755819d1a0ec1defc2630d677.cloudfront.net (CloudFront)
X-Amz-Cf-Id:6eHPWzOXv2J6kIvzuieoI9chtPBBvEvJFH9fb3yMwHvvcMZ4xsigCA==
X-Cache:Hit from cloudfront
요청 헤더:
Accept:*/*
Accept-Encoding:gzip, deflate, br
Accept-Language:en-GB,en;q=0.9,en-US;q=0.8,pl;q=0.7,zh;q=0.6
Cache-Control:no-cache
Connection:keep-alive
Host:d2h5tcpn9r8alm.cloudfront.net
Pragma:no-cache
Referer:https://noru.co.uk/
User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.186 Safari/537.36
"Content-length"가 있고 "Content-Type"이 지원됩니다. 무엇이 빠졌나요? 나 여기서 화날 것 같아...
그 이후로 위에서 설명한 단계를 통해 새 s3 버킷과 새 배포를 만들었지만 다른 버킷 위치를 선택했습니다(이것이 어떻게든 영향을 미치는 경우). 배포 일반 설정은 다음과 같습니다.
Delivery Method Web
Cookie Logging Off
Distribution Status Deployed
Comment -
Price Class Use All Edge Locations (Best Performance)
AWS WAF Web ACL -
State Enabled
Alternate Domain Names (CNAMEs) -
SSL Certificate Default CloudFront Certificate (*.cloudfront.net)
Domain Name d189ud9v76clu1.cloudfront.net
Custom SSL Client Support -
Security Policy TLSv1
Supported HTTP Versions HTTP/2, HTTP/1.1, HTTP/1.0
IPv6 Enabled
Default Root Object -
Last Modified 2018-03-03 15:46 UTC
Log Bucket
그리고 행동: 유통 행위
여전히 gzip을 사용할 수 없습니다. 새 파일은 다음과 같습니다. http://d189ud9v76clu1.cloudfront.net/app.min.js
답변1
귀하의 요청에 필요한 Accept-Encoding: gzip
헤더가 포함되어 있습니까?
헤더는 기본적으로 해당 헤더를 보내지 않는 컬 출력처럼 보입니다.
다음을 통해 컬을 사용하여 gzip 인코딩을 테스트할 수 있습니다.curl -H "Accept-Encoding: gzip" https://example.com/asset.js"
답변2
나에게 일어난 일을 요약할 수 있는지 알아보고 이것이 누군가에게 도움이 될 수도 있습니다.
S3의 초기 설정을 수행했습니다. CORS를 설정했지만 Content-Length가 추가되지 않았습니다. CloudFront의 초기 설정을 수행했습니다. 압축을 확인하지 않았습니다.
모든 것이 배포됩니다.
도메인에서 GTMetrix 테스트를 실행하고 gzip에 대해 F를 받으세요.
돌아가서 Google에서 작동하게 하려면 무엇을 해야 하는지 검색해 보세요. Content-Length 헤더가 필요하다는 것을 깨닫고 <AllowedHeader>Content-Length</AllowedHeader>
CloudFront로 돌아가서 배포에서 압축을 확인해야 한다는 것을 깨닫습니다.
하지만... 캐시도 무효화해야 합니다. 기본적으로 모든 자산은 304(수정되지 않음)로 돌아왔습니다. 따라서 gzip으로 압축된 자산을 얻을 수 없습니다.
배포, 편집, 무효화, 생성 *
및 이동.
도움이 되길 바랍니다.
답변3
그 후 이 문제를 해결하기 위해 AWS 헬프 데스크에 비용을 지불했습니다. 답변은 다음과 같습니다.
개발자 도구를 사용하여 구성에 대한 변경 사항을 볼 수 없어 실망스러울 수 있다는 점을 이해합니다.
온라인에 있는 문서에서 문서를 일부 변경하기 위해 피드백 요청을 하는 것이 약간 혼란스러울 수 있음을 확인합니다. 귀하의 경우에는 성능이 더 많이 변경됩니다. Chrome 브라우저 하단을 보면 네트워크 개발자 도구 아래 옵션을 선택하면 gzip 압축으로 인해 페이지 성능이 어떤 영향을 받았는지 확인할 수 있습니다.
브라우저를 통해 구성을 보려면 "curl" 명령 출력에서 얻을 수 있는 것과 동일한 또 다른 옵션을 사용하여 모든 브라우저에서 개발자 도구의 응답 헤더를 확인합니다.
개발자 도구 -> 네트워크 선택으로 이동하여 찾을 수 있습니다. * 리소스에 대한 모든 링크를 확인한 후 상위 링크 도메인 이름 "noru.co.uk"를 클릭합니다. * 이렇게 하면 컬 명령이 예시에서 수행한 것과 동일한 출력을 제공하는 헤더가 열립니다.
허용 범위: 바이트
Alt-Svc: quic=":443"; ma=2592000; v="35,37,38,39"
캐시 제어: 저장 안 함, 캐시 안 함, 재검증 필수, 사후 확인=0, 사전 확인=0
콘텐츠 인코딩: gzip
콘텐츠 길이: 3152
콘텐츠 유형: 텍스트/html; 문자셋=utf-8
날짜: 2018년 3월 20일 화요일 06:37:04 GMT
태그: "7073226-1521527798;gz"
만료: 1981년 11월 19일 목요일 08:52:00 GMT
Pragma: 캐시 없음
서버: LiteSpeed
다양함: 수락-인코딩
X-Firefox-Spdy: h2
문자셋: utf-8
x-litespeed-cache: 히트,비공개
x-powered-by: Craft CMS
그러면 해당 도메인의 웹 페이지에 대한 대부분의 구성 정보가 제공됩니다.
도움이 되었기를 바랍니다. 다른 문제가 있는 경우 언제든지 문의해 주시면 기꺼이 도와드리겠습니다.