Перейти к содержимому
Aback Tools Logo

Руководство по настройке сжатия CloudFront

Создайте конфигурацию поведения CloudFront для сжатия Brotli и GZIP с правильными заголовками Cache-Control — регистрация не требуется. Руководство по настройке сжатия Cloudfront создает полные политики кэширования, политики заголовков ответов и параметры распространения в формате шагов консоли, Terraform, CloudFormation, AWS CDK или AWS CLI. Поддерживает S3, ALB, API Gateway, EC2 и пользовательские источники. Предупреждения в реальном времени об отсутствии ключей кэша Accept-Encoding, отсутствии заголовков Vary и проблемах Brotli-over-HTTP. Вся генерация запускается в вашем браузере.

CloudFront Compression Config Guide

Generate CloudFront behavior configuration for Brotli and GZIP compression with correct Cache-Control headers. Configure your origin type, compression settings, TTL values, and output format - generates console steps, Terraform, CloudFormation, CDK, or AWS CLI commands. All generation runs in your browser, no signup required.

Origin Type

Output Format

Console Steps - CloudFront Compression Config

# AWS CloudFront Console - Step-by-Step Configuration

## Step 1: Create or Edit CloudFront Distribution
1. Open AWS Console → CloudFront → Distributions
2. Click "Create distribution" or select an existing one → Edit

## Step 2: Configure Origin
- Origin domain: YOUR-BUCKET.s3.YOUR-REGION.amazonaws.com
- Origin access: Origin access control settings (recommended)
- Create new OAC → Sign requests → Save

## Step 3: Configure Default Cache Behavior
- Viewer protocol policy: Redirect HTTP to HTTPS
- Allowed HTTP methods: GET, HEAD
- Compress objects automatically: Yes ← REQUIRED for compression

## Step 4: Create Cache Policy
1. CloudFront → Policies → Cache → Create cache policy
- Name: CompressionCachePolicy
- Default TTL: 86400 seconds (1d)
- Maximum TTL: 31536000 seconds (52w)
- Minimum TTL: 0 seconds
- Cache key settings:
  ✓ Enable Accept-Encoding for Gzip: Yes
  ✓ Enable Accept-Encoding for Brotli: Yes
  Headers: None
  Cookies: None
  Query strings: None (or as needed)

## Step 5: Create Response Headers Policy
1. CloudFront → Policies → Response headers → Create response headers policy
- Name: CompressionResponseHeaders
- Custom headers:
  Header: Vary
  Value: Accept-Encoding
  Override: No
- Security headers: Enable recommended security headers

## Step 6: Attach Policies to Behavior
- Cache policy: CompressionCachePolicy (created above)
- Response headers policy: CompressionResponseHeaders (created above)
- Origin request policy: CORS-S3Origin (for S3) or None

## Step 7: Deploy and Verify
- Click "Save changes" → Wait for distribution to deploy (Status: Deployed)
- Test: curl -H "Accept-Encoding: gzip" -I https://YOUR-CLOUDFRONT-DOMAIN/app.js
- Expected: Content-Encoding: gzip, X-Cache: Hit from cloudfront (2nd request)

Verification Commands

Verify GZIP

curl -H "Accept-Encoding: gzip" -I https://YOUR-CF-DOMAIN/app.js
# Expected: Content-Encoding: gzip

Verify Brotli

curl -H "Accept-Encoding: br" -I https://YOUR-CF-DOMAIN/app.js
# Expected: Content-Encoding: br

Check cache hit

curl -H "Accept-Encoding: gzip" -I https://YOUR-CF-DOMAIN/app.js
# 2nd request: X-Cache: Hit from cloudfront

Зачем использовать наше руководство по настройке сжатия CloudFront?

  • Мгновенное создание конфигурации сжатия CloudFront. Мгновенно создавайте полную конфигурацию сжатия CloudFront — руководство по настройке сжатия CloudFront создает шаги консоли, команды Terraform, CloudFormation, CDK и AWS CLI с правильными политиками кэширования, политиками заголовков ответов и настройками Brotli/GZIP.
  • Онлайн-руководство по настройке безопасного сжатия CloudFront: создание всей конфигурации полностью выполняется в вашем браузере. Руководство по настройке сжатия Cloudfront никогда не отправляет ваши настройки на какой-либо сервер — это безопасно для создания конфигураций для частных дистрибутивов, внутренних API и собственных настроек CloudFront.
  • 5 форматов IaC + предупреждения о неправильной конфигурации в режиме реального времени: сгенерируйте конфигурацию сжатия CloudFront с помощью шагов консоли, в формате Terraform, CloudFormation, AWS CDK или AWS CLI — все с использованием одних и тех же параметров. В руководстве по настройке сжатия Cloudfront отображаются предупреждения в режиме реального времени об отсутствии ключей кэша Accept-Encoding, отсутствии заголовков Vary и проблемах Brotli-over-HTTP.
  • 100% бесплатно навсегда: руководство по настройке сжатия Cloudfront совершенно бесплатно, без регистрации, премиум-уровня, ограничений и рекламы. Создавайте конфигурации сжатия CloudFront для неограниченного распространения без каких-либо затрат и навсегда.

Распространенные случаи использования руководства по настройке сжатия CloudFront

  • Настройка статического сжатия сайта S3: настройте CloudFront для обслуживания статических ресурсов, сжатых GZIP и Brotli, из корзины S3 — руководство по настройке сжатия Cloudfront генерирует правильную политику кэширования с помощью Accept-Encoding в ключе кэша, гарантируя, что CloudFront кэширует отдельные варианты для каждой кодировки.
  • Сжатие ответов шлюза API: включите сжатие CloudFront для источников шлюза API — руководство по настройке сжатия Cloudfront генерирует правильную конфигурацию поведения с включенными Brotli и GZIP, правильными настройками TTL для ответов API и заголовками ответов Vary: Accept-Encoding.
  • Включение сжатия Brotli. Включите сжатие Brotli в дистрибутивах CloudFront, которые в настоящее время используют только GZIP. Руководство по настройке сжатия Cloudfront показывает точные параметры политики кэширования, необходимые для добавления поддержки Brotli без нарушения существующего режима кэширования GZIP.
  • Миграция инфраструктуры как кода. Создайте код Terraform, CloudFormation или CDK для конфигурации сжатия CloudFront. Руководство по настройке сжатия CloudFront создает готовый к использованию код IaC, который можно добавить непосредственно в существующий репозиторий инфраструктуры.
  • Оптимизация политики кэширования: настройте политики кэширования CloudFront с правильными значениями TTL для разных типов ресурсов. Руководство по настройке сжатия Cloudfront поможет вам правильно установить TTL по умолчанию, максимальный TTL и минимальный TTL для статических ресурсов, HTML-страниц и ответов API.
  • Аудит дистрибутива CloudFront. Аудит существующего дистрибутива CloudFront на предмет неправильных настроек сжатия — руководство по настройке сжатия CloudFront показывает правильные настройки и генерирует команды проверки скручивания, чтобы убедиться, что GZIP и Brotli работают правильно.

Что такое конфигурация сжатия CloudFront?

AWS CloudFront может сжимать HTTP-ответы с помощью GZIP и Brotli перед доставкой их клиентам, что сокращает размер передачи на 60–85 % для текстовых ресурсов (HTML, CSS, JavaScript, JSON). Для правильной настройки сжатия CloudFront требуется совместная работа трех компонентов: (1) автоматическое включение сжатия объектов в поведении кэша, (2) политика кэширования, включающая Accept-Encoding в ключ кэша, чтобы CloudFront сохранял отдельные сжатые варианты, и (3) политика заголовков ответов, которая добавляет Vary: Accept-Encoding, чтобы последующие кэши правильно обрабатывали варианты кодировки. Наше руководство по настройке сжатия в облаке генерирует все три компонента в выбранном вами формате IaC.

Как работает наше руководство по настройке сжатия CloudFront

  1. 1. Выберите тип источника и настройки сжатия: выберите источник (S3, ALB, API Gateway, EC2 или собственный), включите GZIP и/или Brotli, настройте значения TTL и переключите Vary header и HTTPS. Руководство по настройке сжатия Cloudfront мгновенно обновляет сгенерированную конфигурацию и отображает предупреждения о неправильных конфигурациях.
  2. 2. Выберите выходной формат: выберите «Шаги консоли» для ручной настройки, Terraform для IaC, CloudFormation для IaC, родного для AWS, CDK для кода инфраструктуры TypeScript или AWS CLI для развертывания из командной строки. Все форматы создают полную, готовую к использованию конфигурацию. Ваши настройки никогда не покидают ваш браузер.
  3. 3. Копирование и развертывание. Скопируйте созданную конфигурацию одним щелчком мыши и примените ее к дистрибутиву CloudFront. Используйте встроенные команды проверки Curl, чтобы убедиться, что GZIP и Brotli работают правильно, и проверьте заголовок X-Cache, чтобы проверить поведение попадания в кеш.

Ключевые настройки сжатия CloudFront

  • Автоматическое сжатие объектов: главный переключатель сжатия CloudFront должен быть установлен в значение true в поведении кэша. CloudFront сжимает только объекты размером ≥1000 байт с поддерживаемыми заголовками Content-Type. Объекты с уже установленным Content-Encoding передаются без повторного сжатия.
  • Политика кэширования — Accept-Encoding в ключе кэша: наиболее важный параметр — EnableAcceptEncodingGzip: true и EnableAcceptEncodingBrotli: true указывают CloudFront кэшировать отдельные варианты для каждой кодировки. Без этого CloudFront кэширует только один вариант и может предоставить клиентам неправильную кодировку.
  • Политика заголовков ответов — Vary: Accept-Encoding: добавляет Vary: Accept-Encoding ко всем ответам, указывая браузерам и промежуточным кэшам хранить отдельные варианты для каждой кодировки. Требуется для правильного поведения, когда CloudFront находится за другим CDN или прокси-сервером.
  • Brotli требует HTTPS: браузеры отправляют Accept-Encoding: br только через соединения HTTPS. HTTP-соединения будут получать ответы только в формате GZIP или в несжатом виде. Всегда включайте политику протокола просмотра перенаправления на https при использовании Brotli.

Сжатие CloudFront и исходное сжатие

CloudFront поддерживает два режима сжатия: автоматическое сжатие (CloudFront сжимает «на лету») и предварительно сжатые ресурсы (origin обслуживает файлы с уже установленным Content-Encoding). Для динамических ответов API автоматическое сжатие является единственным вариантом. Для статических ресурсов (JS, CSS, HTML) предварительное сжатие во время сборки и загрузка в S3 с помощью Content-Encoding: gzip или Content-Encoding: br более эффективны — это устраняет нагрузку на процессор CloudFront при сжатии и позволяет использовать более высокие уровни сжатия (уровень GZIP 9, уровень Brotli 11). Руководство по настройке сжатия Cloudfront создает правильную конфигурацию для обоих режимов.

Часто задаваемые вопросы

Руководство по настройке сжатия Cloudfront создает полную конфигурацию поведения CloudFront для сжатия Brotli и GZIP, включая политики кэширования, политики заголовков ответов и правильные заголовки Cache-Control. Наше бесплатное онлайн-руководство по настройке сжатия Cloudfront предоставляет шаги консоли, Terraform, CloudFormation, CDK и выходные данные AWS CLI. Вся генерация запускается в вашем браузере без необходимости регистрации.

Да. CloudFront поддерживает сжатие Brotli, если включен параметр «Сжимать объекты автоматически», а политика кэширования включает EnableAcceptEncodingBrotli: true. CloudFront предоставляет Brotli клиентам, которые отправляют Accept-Encoding: br (все современные браузеры через HTTPS), и автоматически переключается на GZIP для старых клиентов.

Да. Вся генерация конфигурации полностью выполняется в вашем браузере с использованием JavaScript. Никакие данные конфигурации не отправляются на какой-либо сервер, не сохраняются удаленно и не передаются по сети.

Да – 100% бесплатно, навсегда. Без регистрации, без учетной записи, без премиум-уровня, без ограничений и без рекламы.

Без Accept-Encoding в ключе кэша CloudFront кэширует только один вариант каждого объекта. Если сначала кэшируется сжатый вариант, CloudFront будет предоставлять его клиентам, которые не поддерживают сжатие, что приведет к сбою загрузки. EnableAcceptEncodingGzip и EnableAcceptEncodingBrotli в политике кэширования исправляют это.

CloudFront сжимает только объекты размером не менее 1000 байт (1 КБ). Объекты размером менее 1 КБ передаются в несжатом виде, поскольку из-за издержек заголовков GZIP/Brotli они могут увеличиться. Объекты с Content-Encoding, уже установленным источником, передаются без повторного сжатия.

Для статических ресурсов (JS, CSS, HTML), обслуживаемых из S3, предварительное сжатие во время сборки более эффективно — оно устраняет нагрузку на ЦП при сжатии CloudFront и позволяет использовать более высокие уровни сжатия. Для динамических ответов API автоматическое сжатие CloudFront является единственным вариантом.

Браузеры отправляют Accept-Encoding: br только через соединения HTTPS. HTTP-соединения будут получать только GZIP или несжатые ответы. Всегда включайте политику протокола просмотра перенаправления на https при использовании Brotli.

Используйте Curl: Curl -H "Accept-Encoding: gzip" -I https://ВАШ-CF-ДОМЕН/app.js. Найдите в ответе Content-Encoding: gzip и Vary: Accept-Encoding. Проверьте X-Cache: обращение из облачного интерфейса по второму запросу, чтобы убедиться, что кэширование работает.