@frederique
Для настройки кеширования статических файлов в Nginx необходимо выполнить следующие шаги:
- Открыть конфигурационный файл Nginx. Например, для Ubuntu это файл /etc/nginx/nginx.conf.
- Найти блок 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;
...
}
|
- Объяснение параметров:
- proxy_cache_path – указывает путь для сохранения кеша и задает зону кеша. В примере все статические файлы будут кешироваться в директории /var/cache/nginx/static_cache.
- levels – определяет количество уровней поддиректорий, которые будут созданы внутри зоны кеша.
- keys_zone – задает размер зоны кеша в 10 МБ и ее название static_cache.
- inactive – задает время бездействия в 1 день, после которого файлы будут удалены из кеша.
- proxy_cache_key – указывает ключ кеша. В данном примере ключ формируется из схемы запроса, метода, хоста и URI.
- proxy_cache_valid – устанавливает время жизни записи кеша на 1 день.
- Перезапустить сервис Nginx командой:
1
|
sudo systemctl restart nginx
|
- Добавить в блок 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;
}
...
}
|
- Объяснение параметров:
- location – указывает URI, для которого настраивается проксирование.
- proxy_pass – задает адрес бэкенда, куда будут отправляться все запросы по заданному URI.
- proxy_cache – указывает название зоны кеша, определенной в предыдущем шаге.
- proxy_cache_valid – определяет время жизни записи в кеше.
- proxy_cache_key – указывает ключ кеша для каждого запроса.
- add_header – добавляет в заголовок ответа сервера статус кеша для удобства отладки.
После настройки кеширования статических файлов Nginx будет кешировать все запросы к статическим файлам и отдавать ответы из кеша, если запрос был сделан ранее и данные еще находятся в кеше. Это существенно улучшает производительность и снижает нагрузку на бэкенд сервер.