Я искал способы ускорить загрузку моего сайта, и один из способов, который я хотел бы изучить, - это более широкое использование Cloudfront.
Из-за того, что Cloudfront изначально не был разработан как CDN пользовательского происхождения, и поскольку он не поддерживал gzipping, я до сих пор использовал его для размещения всех моих изображений, на которые ссылается их имя Cloudfront cname в коде моего сайта, и оптимизировал для фьючерсные заголовки.
Файлы CSS и javascript, с другой стороны, размещены на моем собственном сервере, потому что до сих пор у меня сложилось впечатление, что их нельзя обслуживать в gzip-архиве из Cloudfront, и что выгода от gzipping (около 75%) превышает от использования CDN (около 50%): Amazon S3 (и, следовательно, Cloudfront) не поддерживал стандартную обработку gzip-содержимого с помощью заголовка HTTP Accept-Encoding, отправляемого браузерами для указания их поддержки сжатия gzip, и поэтому они не могли Gzip и обслуживать компоненты на лету.
Таким образом, до сих пор у меня сложилось впечатление, что нужно выбирать между двумя альтернативами:
перенести все активы в Amazon CloudFront и забыть о GZipping;
оставляйте компоненты размещенными самостоятельно и настраивайте наш сервер для обнаружения входящих запросов и выполнения GZipping на лету в зависимости от ситуации, что я и решил сделать до сих пор.
Там были обходные пути , чтобы решить эту проблему, но по существу они не работают . [ ссылка ].
Похоже, что Amazon Cloudfront поддерживает пользовательское происхождение, и теперь можно использовать стандартный метод HTTP Accept-Encoding для обслуживания сжатого содержимого, если вы используете пользовательское происхождение [ ссылка ].
До сих пор я не смог реализовать новую функцию на моем сервере. Сообщение в блоге, на которое я ссылался выше, - единственное, в котором я нашел подробное описание изменения, похоже, подразумевает, что вы можете включить gzipping (обходные пути, которые я не хочу использовать), если вы выбираете пользовательское происхождение, которое Я бы предпочел этого не делать: я считаю, что проще размещать соответствующие файлы на моем сервере Cloudfront и ссылаться на них оттуда. Несмотря на тщательное чтение документации, я не знаю:
означает ли новая функция, что файлы должны быть размещены на моем собственном доменном сервере через пользовательское происхождение, и если да, то какая настройка кода достигнет этого;
как настроить заголовки css и javascript, чтобы обеспечить их доставку из Cloudfront.