• 13094
  • 1
  • 1
Нравится блог?
Подписывайтесь!

Используем Nginx, как кеширующий сервер

В этой статье рассмотрим применениt Nginx’a в качестве кеширующего сервера. Подробно о HTTP кеширования написано в статьях о продвинутом кеширующем сервере Varnish. Сразу следует отметить, что Nginx полностью не заменяет Varnish по функционалу и возможностям, но тем не менее продставляет очень хорошое решение. Учитывая великолепную работу этого Web-сервера, наличие функциональности кеширования делает возможным подключить ее к своему сайту буквально за 2 минуты.

Что кешировать?

В предыдущих статьях уже неоднократно упоминалось про суть HTTP кеширования. Если не учитывать более сложных случаев, когда нужно учитывать персонализацию страниц, почти на всех сайтах можно кешировать странички для неавторизованных пользователей. Этот метод хорошо подойдет для информационных ресурсов (например, для этого блога).

Самый простой случай - кешировать страницы для неавторизованных пользователей. Время кеширования обычно выбирают небольшое - 5…10 минут. Тем не менее, при большой нагрузке, это может сэкономить огромное количество ресурсов.

Как кешировать с помощью Nginx?

Давайте вместе настроим кеширование для нашего блога. Для начала необходимо определить зоны кеширования. Зоны помагают категоризировать Ваши объекты в кеше для лучшей управляемости. Зона имеет имя и размер (nginx.conf):

#...
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=all:32m;
# include virtual hosts...

Так мы определили, что хотим создать зону “all” размером 32Мб, данные которой будут храниться в папке “/var/cache/nginx”. Параметр levels задает уровень вложенности файлов. В нашем случае файлы будут храниться в друхуровневой структуре папок. Подробнее про параметры можно почитать в официальной документации.

Не забываем создать папку, где будут храниться данные кеша:

mkdir /var/cache/nginx

Теперь необходимо выделить принимающий сервер и настроить на нем правила кеширования:

server {
        listen 80;
        server_name .highload.com.ua;

        location / {
                if ($http_cookie ~* "comment_author_|wordpress_(?!test_cookie)|wp-postpass_" ) {
                        set $do_not_cache 1;
                }
                proxy_cache_bypass $do_not_cache;
                proxy_pass http://highload.com.ua:81/;
                proxy_cache all;
                proxy_cache_valid 404 502 503 1m;
                proxy_cache_valid any 1h;
        }
}

Обслуживающий хост уедет на 81 порт. Нам необходимо, чтобы кеширование работало только для неавторизованных пользователей. Некоторые пояснения к настройкам:

В условие “if” сделана проверка на куки, которые Wordpress ставит при авторизации

proxy_cache_bypass $do_not_cache - не кешировать ответ, если пользователь авторизован

proxy_cache all - этот параметр включает кеширование, в качестве аргумента принимает зону (у нас это “all”)

proxy_cache_valid 404 502 503 1m - кешируем 404, 502 и 503 ответы на 1 минуту

proxy_cache_valid any 1h - кешируем все остальные ответы на 1 час

Другие форматы

Следует отметить, что кешировать можно не только страницы HTML, но и любые другие типы данных. На одном из наших проектов мы успешно кешируем уменьшенные версии картинок с помощью Nginx’a.

Будет интересно увидеть отзывы читателей, которым уже приходилось на практике применять это решение.

Источник: Highload

13 мая 2011, 9:57
4013

Загрузка...
Loading...

Комментарии

Оставьте свой комментарий

Спасибо за открытие блога в Yvision.kz! Чтобы убедиться в отсутствии спама, все комментарии новых пользователей проходят премодерацию. Соблюдение правил нашей блог-платформы ускорит ваш переход в категорию надежных пользователей, не нуждающихся в премодерации. Обязательно прочтите наши правила по указанной ссылке: Правила

Также можно нажать Ctrl+Enter

Популярные посты

Инструкция для аллергиков. Как бороться с аллергией в период обострения

Инструкция для аллергиков. Как бороться с аллергией в период обострения

Я аллергик с детства. Имею аллергию на пыльцу березы, липы, полыни (выяснил это благодаря кожным пробам), а также пищевую аллергию на горчицу. Свои проблемы знаю, однако это меня не спасло.
Romeo_17
15 авг. 2017 / 17:21
  • 38322
  • 63
СМИ – ассистент провокаторов? Как гости из соседних стран сеют раздор в Казахстане

СМИ – ассистент провокаторов? Как гости из соседних стран сеют раздор в Казахстане

Инцидент с пьяным киргизским гостем на борту Air Astana, наверное, остался бы только во внутренних сводках авиакомпании, если бы г-н Доган, не поднял громкий крик о государственном языке.
openqazaqstan
вчера / 14:43
  • 6099
  • 15
Алматы предложили сделать центром секс-туризма

Алматы предложили сделать центром секс-туризма

Известный политолог России Андрей Карпов предложил сделать Алматы центром секс-туризма. Но для этого сперва нужно легализовать проституцию в стране.
tala03
13 авг. 2017 / 14:48
Казахский национализм раньше выглядел несовременно. Теперь он другой

Казахский национализм раньше выглядел несовременно. Теперь он другой

Националисты стали совсем другими. По-английски хорошо говорят, русскую классику цитируют. Очень современные, образованные, адекватные. А после Крыма в националисты уже чуть ли не любой казах готов был записаться.
Aidan_Karibzhanov
16 авг. 2017 / 16:52
«Доехать до Алтын Орды» – как мошенники обманывают алматинцев

«Доехать до Алтын Орды» – как мошенники обманывают алматинцев

Из множества грустных откровений постепенно сложился перечень самых распространённых уловок охотников за нашими деньгами. В нём ожидаемо лидировали профессиональные попрошайки.
caravan_kz
16 авг. 2017 / 15:05
  • 1582
  • 2
Недоразумение с грантами в ВУЗы: «медалисты» до сих пор имеют преимущество

Недоразумение с грантами в ВУЗы: «медалисты» до сих пор имеют преимущество

Многие способные выпускники без Алтын Белги готовились к тестированию, чтобы в честной борьбе попытать счастья на гранты без ущемления со стороны якобы "золотых" выпускников.
DanaJarlygapova
14 авг. 2017 / 14:35
Приложение казахстанских школьниц признали лучшим на конкурсе в Сан-Франциско

Приложение казахстанских школьниц признали лучшим на конкурсе в Сан-Франциско

Команда алматинских школьниц выиграла главный приз международного конкурса Technovation Challenge 2017 по разработке мобильных приложений.
yviNews
11 авг. 2017 / 16:38
  • 2342
  • 5
Сколько дней казахстанцы отдохнут на День Конституции и Курбан айт

Сколько дней казахстанцы отдохнут на День Конституции и Курбан айт

Многие уже сейчас планируют отпуска и праздничные выходные. Сколько дней отдыха будет в этом году в честь Дня Конституции и мусульманского праздника Курбан айт?
yviNews
11 авг. 2017 / 15:08
  • 1336
  • 0
На EXPO через Балхаш и Боровое своим ходом

На EXPO через Балхаш и Боровое своим ходом

Мы объехали по кругу озеро Иссык-Куль, о чем повествует предыдущий пост, и вернувшись из поездки подумали, а почему бы нам не рвануть на наше озеро, не менее прекрасное?
yelenasergiyenko
13 авг. 2017 / 13:13
  • 1307
  • 6