Перш ніж говорити про веб-кешування, давайте поговоримо про CDN — мережу доставки контенту (CDN) — це розподілена мережа, побудована і покрита поверх мережі носіїв, що складається з парків крайових вузлів по всьому світу. CDN може розділити тиск на вихідний сервер, уникнути перевантаження мережі, забезпечити розповсюдження контенту сайту в різних регіонах і сценаріях, а також покращити швидкість доступу до ресурсів. CDN кешує ресурси вихідного сервера до вузлів прискорення IDC по всьому світу, щоб коли кінцеві користувачі звертаються до ресурсів вихідного сервера та отримують ресурси, вони можуть отримати кешовані ресурси на вузлах CDN поблизу, покращити швидкість доступу до ресурсів і розподілити тиск на оригінальні сервери.
Як показано на наступному рисунку:
Простіше кажучи, коли користувачі отримують доступ до деяких статичних ресурсів, вони не отримують їх із вихідного сервера після використання CDN, а знаходять сервіс CDN, найближчий до поточного користувача, через дані обчислення та повернення.
Веб-кешування — це сервіс між користувачем і вихідним сервером, а Nginx надає можливості веб-кешування нативно. Інші включають Varnish, Squid і Cachewall — це веб-кешовані проксі (деякі з них не просто надають веб-кешування).
Про документацію конфігурації кешу Nginx:Вхід за гіперпосиланням видно.
По-перше, коли ми вперше отримуємо доступ до ресурсу через кеш-сервіс, стан кешу виглядає так:ПРОПУСТИТИ, попросить оригінальний сервер витягнути його, як показано на рисунку нижче:
Коли ми отримуємо доступ до ресурсу вдруге, ми побачимо, що ресурс кешовано, а стан —ХІТ, як показано на рисунку нижче:
Основні параметри конфігурації Nginx такі:
Основні параметри:
proxy_cache_path/data/nginx/cache levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=180d use_temp_path=off;
●path: Обов'язковий параметр, який визначає шлях зберігання кешованих файлів. ●levels: Визначає ієрархію каталогу кешу. Кожен шар можна представити 1 (до 16 варіантів, 0-f) або 2 (до 256 варіантів, 00-ff), розділені посередині. proxy_cache_path /data/nginx/cache; Це означає, що всі кеші мають лише один каталог, наприклад /data/nginx/cache/d7b6e5978e3f042f52e875005925e51b proxy_cache_path /data/nginx/cache levels=1:2; Це означає, що кеш є каталогом другого рівня (з каталогами 16*256=4096), наприклад /data/nginx/cache/b/51/d7b6e5978e3f042f52e875005925e51b ● keys_zone: Обов'язковий параметр, визначити назву та розмір спільної області пам'яті, яка використовується для зберігання метаданих елемента кешу (всі активні ключі та інформація, пов'язана з кешованими даними), щоб nginx міг швидко визначити, чи запит зачепив кеш, 1m зберігає 8000 ключів, 10m — 80000 ключів, 10m — 80000 ключів. ●неактивне: Видаляє кеш-файли, до яких не було доступно у визначений час, за замовчуванням протягом 10 хвилин. ●max_size: Встановлено верхню межу кеш-сховища, і якщо не вказано, максимум весь дисковий простір буде використаний. ● use_temp_path: Розміщуйте тимчасові файли безпосередньо в директорії кешу.
proxy_cachemy_cache; #指定用于页面缓存的共享内存 назва зони визначається proxy_cache_path директивою
proxy_cache_min_uses1; ## визначає поріг кешування, скільки разів кешується запит, і не кешує низькочастотні запити, щоб уникнути втрати.
proxy_cache_valid200 3 м; #为不同的响应状态码设置不同的缓存时间, це запит із кодом статусу кешу 200 і тривалістю кешу 3 хвилини
proxy_cache_key$request_uri; #指定缓存文件的key为请求的URI
add_headernginx-cache-status $upstream_cache_status; #把缓存状态设置为头部信息, відповідай клієнту
proxy_passhttp://webservers; #设置代理转发的后端服务器的协议和地址
Використовуйте кешуючий проксі Nginx для ігнорування рядків запиту
(Кінець)
|