Как настроить кеширование статических файлов в Nginx?

Пользователь

от frederique , в категории: Компьютерные технологии , 8 месяцев назад

Как настроить кеширование статических файлов в Nginx?

Facebook Vk Ok Twitter Telegram Whatsapp

1 ответ

Пользователь

от bill.walker , 8 месяцев назад

@frederique 

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

  1. Открыть конфигурационный файл Nginx. Например, для Ubuntu это файл /etc/nginx/nginx.conf.
  2. Найти блок http и добавить в него следующие настройки кеширования:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
http {
    ...

    # Кеширование статических файлов на 1 день
    proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=static_cache:10m inactive=1d;
    proxy_cache_key "$scheme$request_method$host$request_uri";
    proxy_cache_valid 200 301 302 404 1d;

    ...
}


  1. Объяснение параметров:
  • proxy_cache_path – указывает путь для сохранения кеша и задает зону кеша. В примере все статические файлы будут кешироваться в директории /var/cache/nginx/static_cache.
  • levels – определяет количество уровней поддиректорий, которые будут созданы внутри зоны кеша.
  • keys_zone – задает размер зоны кеша в 10 МБ и ее название static_cache.
  • inactive – задает время бездействия в 1 день, после которого файлы будут удалены из кеша.
  • proxy_cache_key – указывает ключ кеша. В данном примере ключ формируется из схемы запроса, метода, хоста и URI.
  • proxy_cache_valid – устанавливает время жизни записи кеша на 1 день.
  1. Перезапустить сервис Nginx командой:
1
sudo systemctl restart nginx


  1. Добавить в блок server конфигурационного файла Nginx настройки кеширования для каждого проксирования запросов к статическим файлам. Пример настройки кеша для проксирования CSS файлов:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
server {
    ...

    location /static/css/ {
        proxy_pass http://backend/static/css/;
        proxy_cache static_cache;
        proxy_cache_valid 200 301 302 404 1d;
        proxy_cache_key "$scheme$request_method$host$request_uri";
        add_header X-Cache-Status $upstream_cache_status;
    }

    ...
}


  1. Объяснение параметров:
  • location – указывает URI, для которого настраивается проксирование.
  • proxy_pass – задает адрес бэкенда, куда будут отправляться все запросы по заданному URI.
  • proxy_cache – указывает название зоны кеша, определенной в предыдущем шаге.
  • proxy_cache_valid – определяет время жизни записи в кеше.
  • proxy_cache_key – указывает ключ кеша для каждого запроса.
  • add_header – добавляет в заголовок ответа сервера статус кеша для удобства отладки.


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