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