Зв'яжіться з нами

info@serverion.com

Зателефонуйте нам

+1 (302) 380 3902

Перемотування конфігурації NGINX: Serverion відроджує втрачене мистецтво налаштування кешу проксі

Перемотування конфігурації NGINX: Serverion відроджує втрачене мистецтво налаштування кешу проксі

Хочете швидші веб-сайти та менше навантаження на сервер? Кешування проксі NGINX — ваше рішення. Зберігаючи часто запитуваний вміст, він пришвидшує доставку та зменшує навантаження на вихідні сервери. Serionion ділиться практичними порадами щодо оптимізації налаштувань кешу для кращої продуктивності та надійності.

Ключові висновки:

  • Подавайте несвіжий вміст: використовувати кешовані відповіді під час простою сервера з 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=вимкнено; proxy_cache my_cache; оновлення proxy_cache_use_stale; оновлення proxy_cache_background_update увімкнено; proxy_cache_lock увімкнено; 

Ці налаштування забезпечують швидку відповідь, ефективне використання ресурсів і надійну доставку вмісту. Незалежно від того, чи працюєте ви невеликий VPS або сервер із високим трафіком, ці методи можуть допомогти вам отримати максимальну віддачу від кешування проксі NGINX.

NGINX: кешування вмісту за допомогою зворотного проксі (надшвидко…

NGINX

Основи кешування проксі NGINX

Техніка налаштування кешу Serverion спирається на основні принципи кешування проксі-сервера NGINX, що передбачає зберігання та обслуговування копій вихідного вмісту. Система використовує три основні компоненти: шлях до кешу, зону спільної пам’яті та диспетчер кешу, який видаляє прострочені або найменш використовувані (LRU) файли, коли кеш досягає свого ліміту.

Операція проксі-кешу NGINX

Коли NGINX обробляє запит, він спочатку перевіряє зону спільної пам’яті, щоб побачити, чи запитаний вміст уже кешовано. Цей пошук у пам’яті дозволяє швидко визначати збіги чи промахи кешу. Для довідки, зона ключів розміром 1 МБ може зберігати приблизно 8000 ключів кешу[1].

Ось як працює процес кешування:

  • NGINX хешує запит, щоб створити унікальний ключ кешу.
  • Він перевіряє зону спільної пам’яті для цього ключа.
  • Якщо ключ знайдено (попадання в кеш), вміст подається безпосередньо з кешу.
  • Якщо ключ не знайдено (промах кешу), вміст витягується з початкового сервера та зберігається в кеші для подальшого використання.

Serverion оптимізує продуктивність, забезпечуючи ефективний пошук ключів і організовуючи сховище кешу за допомогою ієрархії каталогів.

Основні елементи кешу

Директива Призначення Вплив
proxy_cache_path Визначає місце зберігання кешу Визначає, де і як кешується вміст
proxy_cache Активує кешування для конкретних запитів Вмикає кешування в блоці розташування
keys_zone Виділяє спільну пам'ять для ключів кешу Дозволяє швидкий пошук у пам'яті
неактивний Визначає, як довго невикористані елементи залишаються в кеші Контролює свіжість кешу та час вилучення

Для максимальної ефективності використовуйте дворівневий рівнях ієрархія для запобігання сповільненню файлової системи. Додатково набір use_temp_path=off для запису кешованих файлів безпосередньо в їх кінцеве розташування, зменшуючи накладні витрати на введення-виведення.

NGINX поважає директиви кешу від вихідного сервера. Він зберігає лише відповіді, які включають Закінчується заголовок із майбутньою датою або a Кеш-контроль заголовок з a максимальний вік значення більше нуля.

Тепер ви можете застосувати ці принципи в налаштуваннях кешу проксі 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=вимкнено; 

Ця конфігурація створює дворівневу структуру каталогів, виділяє 10 МБ для keys_zone (достатньо для приблизно 80 000 ключів), встановлює максимальний розмір кешу 10 ГБ і визначає час очікування неактивності 60 хвилин.

Ви також можете включити ці додаткові директиви для кращого контролю:

Директива Призначення
proxy_cache_use_stale Подає застарілий вміст, якщо вихідні сервери недоступні
proxy_cache_revalidate Використовує умовні запити GET, щоб перевірити, чи вміст досі дійсний
proxy_cache_background_update Оновлює застарілий вміст у фоновому режимі
proxy_cache_lock Запобігає перевантаженню вихідного сервера кількома запитами

Після визначення цих параметрів виділіть пам'ять і дисковий простір на основі очікуваного трафіку.

Керування розміром кешу

Для ефективного розміру кешу враховуйте використання пам’яті та диска. Ось як:

  • Розмір зони пам'яті Виділіть пам'ять для keys_zone щоб відповідати вашим потребам у кешуванні:
    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; 

Після встановлення цих параметрів ви готові ініціалізувати та ввімкнути кеш.

Ініціалізація кешу

Після точного налаштування параметрів і розміру виконайте такі дії, щоб активувати кешування:

  1. Використовувати proxy_cache_path директиву з прикладу вище та доп proxy_cache мій_кеш до вашої конфігурації.
  2. Увімкніть кешування у відповідних сервер або Місцезнаходження блок:
    proxy_cache my_cache; 
  3. За бажанням можна включити будь-які директиви тонкого налаштування, згадані раніше, щоб підвищити продуктивність.
  4. Відстежуйте стан кешу, додавши спеціальний заголовок:
    add_header X-Cache-Status $upstream_cache_status; 

Примітка: згідно з документацією NGINX, 1 Мб keys_zone може зберігати приблизно 8000 ключів.

Це налаштування гарантує, що ваш кеш готовий ефективно обробляти трафік, зберігаючи при цьому гнучкість для налаштувань.

Керування корпоративним кеш-пам’яттю 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 ОТРИМАННЯ ЗАГОЛОВКИ; 

Після захисту кешу переконайтеся, що ви постійно відстежуєте його продуктивність.

Відстеження продуктивності кешу

Відстежуйте поведінку кешу за допомогою визначень стану, щоб точно налаштувати налаштування:

Статус Визначення
ОНОВЛЕННЯ Застарілий вміст надається під час оновлення
ПЕРЕВЕРДЕНО Кешований вміст було повторно перевірено на вихідному сервері

Проаналізуйте X-Cache-Status регулярно перевіряти показники та коригувати директиви відповідно до моделей трафіку для отримання оптимальних результатів.

SerionionКонфігурація кешу NGINX

Serionion

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=вимкнено; proxy_cache_key "$scheme$request_method$host$request_uri"; proxy_cache_valid 200 302 60m; proxy_cache_valid 404 1m; 

The keys_zone розмір встановлений для розміщення приблизно 80 000 ключів.

Виділені сервери

Для додатків із високим трафіком на виділених серверах Serverion використовує систему розподіленого кешування на кількох SSD:

proxy_cache_path /cache1 рівні=1:2 keys_zone=cache1:10m; proxy_cache_path /cache2 рівні=1:2 keys_zone=cache2:10m; proxy_cache_path /cache3 рівні=1:2 keys_zone=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-проксі-кеш Метрики дозволили ІТ-командам ефективно налаштувати параметри кешу, що призвело до швидшого часу відповіді, меншого навантаження на вихідні сервери та кращої доступності для корпоративних операцій.

Пов’язані публікації в блозі

uk