Szukałem sposobów na szybsze ładowanie mojej witryny, a jednym ze sposobów, który chciałbym zbadać, jest lepsze wykorzystanie Cloudfront.
Ponieważ Cloudfront pierwotnie nie został zaprojektowany jako CDN niestandardowego pochodzenia i ponieważ nie obsługiwał gzippingu, do tej pory używałem go do hostowania wszystkich moich obrazów, do których odwołuje się ich nazwa Cloudfront w kodzie mojej witryny, i zoptymalizowanych do tej pory przyszłe nagłówki.
Z drugiej strony pliki CSS i javascript są hostowane na moim własnym serwerze, ponieważ do tej pory miałem wrażenie, że nie można ich udostępniać w formacie gzip z Cloudfront i że zysk z gzippingu (około 75 procent) przewyższa to z użycia CDN (około 50 procent): Amazon S3 (a zatem Cloudfront) nie obsługiwał standardowego wyświetlania treści spakowanych gzipem przy użyciu nagłówka HTTP Accept-Encoding wysyłanego przez przeglądarki w celu wskazania ich obsługi kompresji gzip, oraz więc nie byli w stanie zgzipować i podawać komponentów w locie.
Dlatego miałem wrażenie, że do tej pory trzeba było wybierać między dwiema alternatywami:
przenieś wszystkie zasoby do Amazon CloudFront i zapomnij o GZipping;
utrzymuj komponenty na własnym serwerze i skonfiguruj nasz serwer, aby wykrywał przychodzące żądania i odpowiednio wykonywał GZipping w locie, co dotychczas wybrałem.
Tam były obejścia aby rozwiązać ten problem, ale w zasadzie to nie działa . [ link ].
Teraz wygląda na to, że Amazon Cloudfront obsługuje niestandardowe pochodzenie i że można teraz używać standardowej metody kodowania HTTP Accept-Encoding do wyświetlania treści spakowanych gzipem, jeśli używasz niestandardowego źródła [ link ].
Do tej pory nie byłem w stanie wdrożyć nowej funkcji na moim serwerze. Post na blogu, do którego odsyłam powyżej, który jest jedynym, który znalazłem szczegółowo opisujący zmianę, wydaje się sugerować, że możesz włączyć gzipping (obejścia paska, których nie chcę używać), jeśli wybierzesz niestandardowe pochodzenie, które Wolałbym nie: uważam, że łatwiej jest hostować odpowiednie pliki na moim serwerze Cloudfront i stamtąd do nich link. Mimo starannego przeczytania dokumentacji nie wiem:
czy nowa funkcja oznacza, że pliki powinny być hostowane na moim własnym serwerze domeny przez niestandardowe pochodzenie, a jeśli tak, to jaki kod to osiągnie;
jak skonfigurować nagłówki css i javascript, aby upewnić się, że są one dostarczane w formacie gzip z Cloudfront.