Исходная статья годовалой давности, но всё равно весьма полезный приём, например
если апач жрёт много ресурсов, не хватает памяти на сервере, тормозит база данных и т.д.
Просто положить готовые страницы в виде файлов и всё.
Притом даже если будет сбой бэкенда (ошибки HTTP 500, 502, 503, 504) - всё равно nginx сможет вернуть рабочую страницу.
---
23 марта вышел nginx 0.7.44, в нем наконец то появилось обещенное кеширование в модуле проксирования. Что нам это дает?
Как правило nginx используют для проксирования на всевозможные тяжеловесные веб сервера, которые долго и тяжело обрабатывают запросы. Не даром среди модулей nginx присутствует замечательно выполненный модуль upstream, который позволяет гибко балансировать нагрузку при проксировании. Теперь же, при наличии большого дискового кеша, nginx сможет сам обрабатывать такие запросы, не беспокоя при этом бекэнды.
После того как вы обновите или установите новый nginx, для того что бы включить кеширование, нужно будет внести такие настройки:
#Настройка файлового кеша. Первая опция определяет, # путь, levels - определяет уровень вложенности дисковой # иерархии кеша, keys_zone - определяет имя области # разделяемой памяти и размер, в разделяемой памяти, nginx # будет хранить активный кеш и ключи доступа, в моем # случае имя one, размер 20 мегабайт. Эта опция # определяется, только в секции http nginx, глобально # для всех виртуальных серверов. proxy_cache_path /var/db/nginx levels=1:2 keys_zone=one:20m; # Имя используемой зоны, для разных виртуалхостов можно # указывать разные, заранее определенные в секции http. # Эту и все последующие опции можно определять # индивидуально для каждого виртуального сервера proxy_cache one; # После скольких запросов результат запроса попадет в кеш proxy_cache_min_uses 1; # Кешировать результат выполнения запроса с кодом 200, 301 и 302 # на 30 минут proxy_cache_valid 200 301 302 30m; # 404 кешировать на 1 минуту proxy_cache_valid 404 1m; # При получении от бекэнда одного из перечисленных кодов # ответов разрешается использовать "несвежий" # кешированный результат выполнения запроса. proxy_cache_use_stale error timeout invalid_header http_500 http_502 http_503 http_504;
После того, как вы установите все опции, перезапустите nginx. Директории кеша создадутся сами и все замечательно заработает.
---
Оставить комментарий