~ / blog / kesh

Кэширование — страница 6

Кэш страниц в nginx, фрагменты в Redis, автоматический обходчик и сброс при выкате: как отдавать сайт мгновенно и не показывать посетителю старое.

#Кэширование 2 мин

Точечная чистка кэша по файлам и дыра с главной страницей

Ключ не вычислять — читать строку KEY в файлах кэша и сравнивать путь без параметров. Главную точечно не чистили без всякой причины, а немедленный сброс из админки не вызывался. Бонус: 449 вариантов главной от бота соцсети.

· · ·
#Кэширование 2 мин

nginx не умеет помечать устаревшим: чистка кэша без прогрева — это MISS

Удалённую копию нельзя отдать как устаревшую — следующий посетитель ждёт рендер. Греть после ответа через fastcgi_finish_request и во всех вариантах ключа: на одном адресе 8 ячеек, а прогревалась одна.

· · ·
#Кэширование 2 мин

Статус кэша в журнале nginx: разобрать жалобу на медленную загрузку за минуту

X-Cache-Status говорит, что сейчас, но не что было вчера. log_format с $upstream_cache_status, временем ответа и частями ключа: BYPASS залогиненного, холодный вариант ключа или сеть — видно по одной строке.

· · ·
#Кэширование 2 мин

Рекламный трафик не кэшируется вообще: открытая проблема

Адрес с ?ysclid всегда MISS: модуль атрибуции ставит куку, а ответ с Set-Cookie nginx не кэширует. 2246 самых дорогих запросов в сутки получают самый медленный ответ. Почему в nginx не лечится и как решать — метка на клиенте.

· · ·
#Кэширование 2 мин

Живые данные в кэшируемой странице: остатки, кнопки редактора, просмотры

HTML одинаков для всех, живое дорисовывается отдельно. Остатки — пустой слот, скрипт и микрокэш 30 секунд, обмен не сбрасывает страницы. Кнопки редактора — класс на body и отдельный скрипт.

· · ·
#Кэширование 2 мин

Разметка, зависящая от куки, запекается в кэш: плашка cookie и язык

Серверная проверка куки под кэшем даёт вариант первого посетителя всем: плашка согласия у всех навсегда или ни у кого, маска телефона чужой страны. Лечение: рисовать всегда и убирать скриптом, язык — в ключ.

· · ·
#Кэширование 2 мин

Прикладные куки в обходе кэша: сайт медленный у самых активных посетителей

Кука сравнения в карте обхода выключает кэш на всём сайте: главная 1,4 с вместо 0,07 с у того, кто сравнивает товары. Что можно в обход, что — в ключ, что — на клиент, и ловушка с запечённым счётчиком.

· · ·
#Кэширование 2 мин

Set-Cookie при рендере выключает кэш страницы навсегда

nginx не кэширует ответ с Set-Cookie, а обходчик приходит без кук и тоже получает куку. Счётчик просмотров и метка источника держали в кэше 25 страниц из 89 — после переноса на ajax 89 из 89. Как найти за минуту.

· · ·
#Кэширование 2 мин

Ключ кэша nginx: что в него входит и как куки дробят ячейки

HEAD и GET — разные ячейки (250 мусорных от проверки curl -I), кука сортировки со значением default давала посетителю личный холодный кэш. Склейка через map, квирк nginx со словом default и как найти забытые в ключе куки.

· · ·

$ tail -f /blog

Не пропустите новые статьи

Пишу разборы по скорости сайтов, кэшу и разработке — на живых проектах и с цифрами. Подпишитесь, и ссылка на новую статью придёт сразу после выхода. Без рекламы и спама, отписаться — в один клик.

В Telegramодна кнопка «Старт» в боте

или на почту

связаться

Расскажите о задаче