hostfly.byFAQ

Облачное хранилище S3

Интеграции с S3

Как настроить кеширование S3-хранилища через Nginx

FAQ

Как настроить кеширование S3-хранилища через Nginx

Nginx можно настроить как кеширующий прокси перед облачным хранилищем. Часто запрашиваемые файлы будут отдаваться с сервера, что снижает количество обращений к хранилищу и ускоряет загрузку для посетителей.

Когда это нужно

Схема подходит сайтам с большим количеством статики: изображениями товаров, медиафайлами, документами. Для редко запрашиваемых архивов кеширование пользы не даёт.

Что понадобится

Сервер с Nginx и правами root, бакет с публичным доступом на чтение.

Шаг 1. Создание зоны кеша

В файл /etc/nginx/nginx.conf в секцию http добавьте:

proxy_cache_path /var/cache/nginx/s3 levels=1:2 keys_zone=s3_cache:10m max_size=10g inactive=7d use_temp_path=off;

Параметр max_size задаёт максимальный размер кеша на диске, inactive — срок хранения файлов, к которым не было обращений.

Создайте каталог и выдайте права:

mkdir -p /var/cache/nginx/s3
chown -R www-data:www-data /var/cache/nginx/s3

В CentOS и Rocky Linux вместо www-data используется пользователь nginx.

Шаг 2. Настройка прокси

В конфигурации сайта добавьте блок location:

location /static/ {
    proxy_pass https://s3.hostflyby.net/имя-бакета/;
    proxy_set_header Host s3.hostflyby.net;
    proxy_hide_header x-amz-id-2;
    proxy_hide_header x-amz-request-id;
    proxy_cache s3_cache;
    proxy_cache_valid 200 302 7d;
    proxy_cache_valid 404 1m;
    proxy_cache_revalidate on;
    proxy_cache_use_stale error timeout updating http_500 http_502 http_503 http_504;
    proxy_cache_lock on;
    add_header X-Cache-Status $upstream_cache_status;
    expires 7d;
}

Директива proxy_cache_use_stale позволяет отдавать файл из кеша, если хранилище временно недоступно.

Шаг 3. Проверка конфигурации

nginx -t
systemctl reload nginx

Проверьте работу кеша запросом к файлу:

curl -I https://вашсайт.by/static/имя-файла.jpg

В заголовках ответа появится X-Cache-Status. Значение MISS означает первое обращение, HIT — отдачу из кеша.

Шаг 4. Очистка кеша

Для полной очистки удалите содержимое каталога и перезагрузите Nginx:

rm -rf /var/cache/nginx/s3/*
systemctl reload nginx

Частые ошибки

502 Bad Gateway. Проверьте адрес в proxy_pass и заголовок Host: он должен совпадать с адресом хранилища.

X-Cache-Status всегда MISS. Хранилище отдаёт заголовки, запрещающие кеширование. Добавьте директиву proxy_ignore_headers Cache-Control Expires;

403 Forbidden. Бакет закрыт на чтение. Откройте публичный доступ к объектам или настройте политику на чтение.

Доменные имена

Услуги хостинга

Регистрация в БелГИЭ

SSL-сертификаты

Конструктор сайтов

Оплата услуг

Электронная почта

© 2026 ООО «Суппорт чейн». Провайдер облачного хостинга и регистратор доменных имён в Беларуси. 220062, Республика Беларусь, г. Минск, проспект Победителей, 106, офис 14 · support@hostfly.by · +375 29 336-73-73

TelegramInstagramVKYoutubeFacebook

Dev & Design Whale Studio