Перемотка конфигурации NGINX: Serverion возрождает забытое искусство настройки кэша прокси-сервера
Хотите более быстрые веб-сайты и меньшую нагрузку на сервер? Решение — кэширование прокси-сервера NGINX. Храня часто запрашиваемый контент, он ускоряет доставку и снижает нагрузку на исходные серверы. Serverion делится практическими советами по оптимизации настроек кэша для повышения производительности и надежности.
Основные выводы:
- Подавать устаревший контент: Используйте кэшированные ответы во время простоя сервера с
proxy_cache_use_stale. - Обновления фона: Обновляйте записи кэша, не мешая пользователям, используя
proxy_cache_background_update. - Предотвращать перегрузки: Избегайте перегрузки вашего исходного сервера
proxy_cache_lock.
Пример настройки:
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m use_temp_path=off; proxy_cache my_cache; proxy_cache_use_stale обновление; proxy_cache_background_update вкл; proxy_cache_lock вкл; Эти настройки обеспечивают быстрые ответы, эффективное использование ресурсов и надежную доставку контента. Независимо от того, работаете ли вы малый VPS или на сервере с высоким трафиком эти методы помогут вам максимально эффективно использовать кэширование прокси-сервера NGINX.
NGINX: кэширование контента с помощью обратного прокси-сервера (супербыстрое …

Основы кэширования прокси-сервера NGINX
Методы настройки кэша Serverion основаны на основных принципах кэширования прокси NGINX, которое включает хранение и обслуживание копий исходного контента. Система использует три основных компонента: путь кэша, зону общей памяти и менеджер кэша, который удаляет устаревшие или наименее недавно использованные (LRU) файлы, когда кэш достигает своего предела.
Операция кэширования прокси-сервера NGINX
Когда NGINX обрабатывает запрос, он сначала проверяет свою зону общей памяти, чтобы узнать, кэширован ли уже запрошенный контент. Этот поиск в памяти позволяет быстро определить попадания или промахи кэша. Для справки, зона ключей размером 1 МБ может хранить около 8000 ключей кэша[1].
Вот как работает процесс кэширования:
- NGINX хэширует запрос для создания уникального ключа кэша.
- Он проверяет общую зону памяти на наличие этого ключа.
- Если ключ найден (попадание в кэш), контент передается непосредственно из кэша.
- Если ключ не найден (промах кэша), содержимое извлекается с исходного сервера и сохраняется в кэше для будущего использования.
Serverion оптимизирует производительность, обеспечивая эффективный поиск ключей и организуя кэш-хранилище с использованием иерархий каталогов.
Основные элементы кэша
| Директива | Цель | Влияние |
|---|---|---|
proxy_cache_path | Указывает место хранения кэша | Определяет, где и как кэшируется контент |
proxy_cache | Активирует кэширование для определенных запросов | Включает кэширование в блоке местоположения |
ключи_зона | Выделяет общую память для ключей кэша | Позволяет выполнять быстрый поиск в памяти |
неактивный | Определяет, как долго неиспользуемые элементы остаются в кэше. | Контролирует актуальность кэша и время вытеснения |
Для максимальной производительности используйте двухуровневую уровни Иерархия для предотвращения замедления файловой системы. Кроме того, установите use_temp_path=выкл записывать кэшированные файлы непосредственно в их конечное местоположение, сокращая накладные расходы на ввод-вывод.
NGINX уважает директивы кэширования от исходного сервера. Он сохраняет только те ответы, которые включают Истекает заголовок с будущей датой или Cache-Control заголовок с максимальный возраст значение больше нуля.
Теперь вы можете применить эти принципы при настройке кэширования прокси-сервера NGINX.
[1] Документация NGINX: Зона ключей размером 1 МБ хранит данные примерно для 8000 ключей.
Руководство по настройке кэша прокси-сервера NGINX
Узнайте, как шаг за шагом настроить и оптимизировать кэширование прокси-сервера NGINX.
Настройки параметров кэша
Основой настройки кэша прокси-сервера NGINX является proxy_cache_path директива. Вот пример конфигурации:
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m use_temp_path=off; Эта конфигурация создает двухуровневую структуру каталогов, выделяет 10 МБ для ключи_зона (достаточно примерно для 80 000 ключей), устанавливает максимальный размер кэша 10 ГБ и определяет время бездействия 60 минут.
Для лучшего контроля вы также можете включить следующие необязательные директивы:
| Директива | Цель |
|---|---|
proxy_cache_use_stale | Отправляет устаревший контент, если исходные серверы недоступны |
proxy_cache_revalidate | Использует условные запросы GET для проверки того, является ли содержимое еще действительным |
proxy_cache_background_update | Обновляет устаревший контент в фоновом режиме |
proxy_cache_lock | Предотвращает перегрузку исходного сервера многочисленными запросами |
После определения этих параметров выделите память и дисковое пространство в зависимости от ожидаемого трафика.
Управление размером кэша
Чтобы эффективно определить размер кэша, учитывайте использование памяти и диска. Вот как это сделать:
- Размер зоны памяти Выделить память для
ключи_зонав соответствии с вашими потребностями в кэшировании:keys_zone=enterprise_cache:100m; # Поддерживает около 800 000 ключей кэша - Распределение дискового пространства Отрегулируйте
proxy_cache_pathчтобы указать максимальный объем дискового пространства:proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=enterprise_cache:100m max_size=10g inactive=24h use_temp_path=off;
После настройки этих параметров вы готовы инициализировать и включить кэш.
Инициализация кэша
После точной настройки параметров и размеров выполните следующие действия, чтобы активировать кэширование:
- Использовать
proxy_cache_pathдирективу из примера выше и добавьтеproxy_cache мой_кэшв соответствии с вашей конфигурацией. - Включить кэширование в соответствующих
серверили жеместо нахожденияблокировать:proxy_cache мой_кэш; - При желании можно включить любые из упомянутых ранее директив тонкой настройки для повышения производительности.
- Контролируйте состояние кэша, добавив пользовательский заголовок:
add_header X-Cache-Status $upstream_cache_status;
Примечание: Согласно документации NGINX, 1 МБ
ключи_зонаможет хранить около 8000 ключей.
Такая настройка гарантирует, что ваш кэш будет готов эффективно обрабатывать трафик, сохраняя при этом гибкость настроек.
sbb-itb-59e1987
Управление корпоративным кэшем NGINX
После того как путь и параметры кэша заданы, пора масштабировать настройку для эффективной обработки трафика корпоративного уровня.
Оптимизация частоты обращений к кэшу
Чтобы повысить эффективность кэширования, включите такие функции, как условные запросы и фоновые обновления:
proxy_cache_revalidate вкл; proxy_cache_background_update вкл; proxy_cache_use_stale обновление; Предотвратите перегрузку вашего исходного сервера, настроив следующие параметры:
proxy_cache_lock вкл; proxy_cache_lock_timeout 5 с; proxy_cache_min_uses 2; Для сред с высоким трафиком распределите нагрузку кэша между несколькими устройствами хранения, чтобы повысить производительность:
split_clients "${request_uri}" $disk { 20% "/data/cache1"; 20% "/data/cache2"; 20% "/data/cache3"; 20% "/data/cache4"; * "/data/cache5"; } После оптимизации производительности кэша сосредоточьтесь на его защите для обработки конфиденциального контента.
Контроль безопасности кэша
Чтобы защитить конфиденциальные запросы, обойдите кэширование и настройте ключи кэширования по мере необходимости:
proxy_cache_bypass $http_pragma; proxy_cache_bypass $cookie_nocache; proxy_ignore_headers Управление кэшем; Для персонализированного контента или запросов на основе cookie-файлов настройте ключ кэша и поддерживаемые методы:
proxy_cache_key "$host$request_uri$cookie_user"; proxy_cache_methods GET HEAD POST; После защиты кэша обязательно постоянно отслеживайте его производительность.
Отслеживание производительности кэша
Контролируйте поведение кэша, используя определения статуса, чтобы точно настроить параметры:
| Статус | Определение |
|---|---|
| ОБНОВЛЕНИЕ | Устаревший контент отображается во время обновления |
| ПЕРЕПРОВЕРЕНО | Кэшированное содержимое было повторно проверено на исходном сервере. |
Проанализируйте X-Cache-Статус регулярно проверяйте показатели и корректируйте директивы в соответствии с моделями трафика для достижения оптимальных результатов.
ServerionКонфигурация кэша NGINX

Serverion настраивает параметры кэша NGINX на основе конкретных потребностей каждой рабочей нагрузки. Используя основные директивы, они оптимизируют конфигурации кэша по-разному для VPS и Выделенные серверы.
Пути кэширования по рабочей нагрузке
Рабочие нагрузки VPS
Для настроек VPS эта конфигурация обеспечивает баланс между эффективностью памяти и быстрым временем отклика:
proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=SERVERCACHE:10m max_size=10g inactive=60m use_temp_path=off; proxy_cache_key "$scheme$request_method$host$request_uri"; proxy_cache_valid 200 302 60m; proxy_cache_valid 404 1m; The ключи_зона размер рассчитан примерно на 80 000 ключей.
Выделенные серверы
Для приложений с высоким трафиком на выделенных серверах Serverion использует распределенную систему кэширования на нескольких SSD-дисках:
proxy_cache_path /cache1 уровни=1:2 ключи_зона=cache1:10m; proxy_cache_path /cache2 уровни=1:2 ключи_зона=cache2:10m; proxy_cache_path /cache3 уровни=1:2 ключи_зона=cache3:10m; split_clients "${request_uri}" $cachezone { 33% "cache1"; 33% "cache2"; * "cache3"; } Эта настройка равномерно распределяет записи в кэш по трем SSD-накопителям с использованием split_clients директива.
Конкретные значения для этих конфигураций взяты из справочной таблицы параметров кэша Serverion.
Настройки инфраструктуры
Для дальнейшего повышения производительности настройки рабочего процесса NGINX изменяются для эффективной обработки ввода и вывода кэша:
worker_processes auto; worker_connections 1024; worker_cpu_affinity 0-3; # выравнивает рабочие процессы с ядрами ЦП Эти корректировки гарантируют, что кэшированные ответы будут доставлены с максимальной эффективностью.
Резюме: результаты настройки кэша NGINX
Serverion улучшил производительность и надежность во всех своих хостинговые системы через детальные настройки кэша прокси. Уточняя иерархию кэша, управляя настройками свежести и оптимизируя обработку заголовков, они поддерживали бесперебойную доставку контента. В режиме реального времени X-Proxy-Cache Метрики позволили ИТ-отделам эффективно настраивать параметры кэширования, что привело к сокращению времени отклика, снижению нагрузки на исходные серверы и повышению доступности корпоративных операций.