Я включил кеширование с помощью Nginx. Я следил за официальные документы и он отлично работает. Что происходит, когда запрос поступает впервые, он передается серверу через прокси. Ответ кешируется.
С этого момента все запросы обслуживаются из кеша Nginx до истечения срока его действия. Но мне нужно еще кое-что.
Вот что я хочу:
Как я могу это сделать?
Я пробовал mirror
команда, но она не вызывается, когда страница обслуживается из кеша. Он вызывается только по истечении срока действия кеша. Вот снимок конфигурации, который я пробовал. Это вообще возможно? Есть другой способ сделать это?
РЕДАКТИРОВАТЬ Директива Cache, как показано на втором снимке экрана.
Это не представляется возможным. В mirror
Директива обрабатывается как подзапрос к исходному запросу, поэтому, если nginx не обрабатывает исходный запрос, зеркальный запрос также не будет обработан.
В качестве обходного пути вы можете добавить второй настраиваемый access_log
директива, которая использует пользовательский log_format
. Затем ваша программа может прочитать этот журнал, чтобы определить, когда произошло попадание в кеш и по какому URL. Фактически, он мог просто использовать этот журнал для подсчета всех попаданий, кэшированных или нет.