Запись там не идёт так уж быстро, что бы заткнуть SSD накопитель. ОК, при старте может быть небольшой затык, но т.к. это в основном read-only и редкая запись нового файла на кеш — скорость отдачи будет очень хорошей.
такое информацией не владею, строки-то по сути разные (значит и ключи).
Просветите, если несложно, зачем кеш-модулю так думать с оглядкой на кеширование в вебе.
Т.е. есть шанс, что Хабрахабр будет отдаваться мне заgzipованным через мою корпаративную проксю? Дома, напрямую, всё отдаётся нормально, а вот на работе, через сквид, Хабр отдаёт мне всё не gzipованное. (Настройки сквида правильные — остальные сайты отдаются нормально)
Сквид не умеет раззгзиповывать файлы из кеша. То есть в кеше лежит либо гзипованный файл — либо нет. Если лежит гзипованый а клиент не умеет принимать сжатых запросов (IE6 за проксей например) — сквид пойдет на сайт за новой версией контента и положит на диск уже несжатую версию.
Так что это не проблема сквида — nginx в подобной ситуации думается будет вести себя точно так же.
При большой нагрузке использование дискового кеша в squid становится пыткой для пользователей, поэтому cache_mem побольше, а cache_dir в null, и всё хорошо.
Не очень понял как это связано с удалением.
Для отдачи статики все нормальные веб-сервера используют sendfile — а уж откуда возьемет операционка этот файл — с диска ли прочтет или же из кеша в памяти — ее дело.
В продакшн ещё конечно рано. Чисто потестировать. Работы там ещё очень много.
Как сказал Игорь в рассылке:
«Не знаю, кто что ждал, но я устал смотреть на то, что вытворяют
с proxy/fastcgi_store, memcached'ом и mod_accel'ем и выпустил то, что есть.»
Но в любом случае nginx идёт вперёд семимильными шагами. За что Игорю огромное спасибо.
Я, честно говоря, не понял о чем тут идет речь, но уверен в том, что Игорь сделал снова что-то хорошее.
Огромное ему спасибо от меня, как от руководителя портала, за то, что nginx есть и за то, что nginx есть у нас! До установки я и не думал, что он настолько полезен. Игорь, спасибо! И успехов!
Спасает когда на бекенде обычный SATA с картинкуами а на frontend кеш замонтирован на более быстрый диск/RAID-масив/tmpfs, в этом случае скорость отдачи возрастает в разы.
функция, описываемая в статье, актуальна только если за фронтендом(nginx) стоит какой-то бекенд (например, апач)?
в моем случае nginx работает сам, без бекенда, а с пхп общается через fast-cgi
могу ли я воспользоваться этим кешированием?
Возможность блокировки одинаковых запросов.
Например, у вас некоторая очень популярная, но тяжелая страница. Естественно, вы ее кешируете.
Что произойдет, когда истечет время кеширования?
Первый запрос на нее «провалится» в бекенд, но страница готовится долго, поэтому до того, как она будет сформирована, все остальные запросы тоже будут «проваливаться» в бекенд. Иными словами — в этот момент кеш у вас совершенно не работает! Как будто его вовсе нет. Ситуация усугубляется тем, что страница тяжелая, и получается, что у вас одновременно много потоков бекенда заняты генерацией этой самой страницы. Если используются запросы из базы, то получается, что они еще при этом друг другу мешают.
Busy-lock позволяет недопустить такой ситуации.
Первый запрос направляется в бекенд, одновременно ставится пометка, что такая-то страница уже генерится, поэтому все последующие запросы на нее задерживаются веб-сервером и ставятся в очередь. Как только страница сгенерирована, она кладется в кеш и отдается всем запросам.
В итоге: тяжелая страница генерится только одним потоком, база разгружена. Все работает быстро.
Более подробно мехнизм работы описан здесь: sysoev.ru/mod_accel/readme.html#busylocks
Самое интересное, что эта штука уже 7 лет как есть в mod_accel, но в nginx ее до сих пор нет.
NGINX научился кешировать проксированные запросы