Странные тормоза после очистки кеша Нгихс

D
На сайте с 28.06.2008
Offline
1108
1327

У меня на сервере крутится несколько сайтов и все кешируются Нгихсом. Иногда мне нужно срочно показать какую то новость, а так как я не знаю как очистить кеш Нгихс для определенного сайта, то я через ISP захожу в /var/cache/nginx и удаляю все папки.

В результате чего 1 сайт начинает тупить - всегда один и тот же. Если в этот момент зайти в апач статус - то по всем сайтам все нормально, а запросы к проблемному сайту все с флагом - W

Перезагрузка апача, мускуля, оптимизация баз не спасает (точнее помогает но на пару минут) - полностью снимает проблему только ребут.

Посещаемость этого сайта и сервера в целом не громадная - сотни уников онлайн (не тысячи).

Что посоветуете?

png apache_processes-day.png
Оптимизайка
На сайте с 11.03.2012
Offline
396
#1

Ну так не удаляйте весь кэш. Инвалидируйте только измененную страницу:

добавить в конфиг nginx: proxy_cache_bypass $http_secret_header;

инвалидация: curl http://mysite.ru/mypage.html -s -I -H "secret-header:true"

Есть ещё вот https://github.com/FRiCKLE/ngx_cache_purge

⭐ BotGuard (https://botguard.net) ⭐ — защита вашего сайта от вредоносных ботов, воровства контента, клонирования, спама и хакерских атак!
A
На сайте с 19.07.2010
Offline
130
#2
Dram:
я через ISP захожу в /var/cache/nginx и удаляю все папки.
...
Перезагрузка апача, мускуля, оптимизация баз не спасает

А самому nginx-у сделать restart? чтобы он пересоздал структуру папок для кеша и сбросил хеш в раме.

Апач и мускул трогать не нужно.

для сброса кеша одной страницы добавьте в конфиг:


proxy_cache_bypass $arg_reload;

запрос типа: http://site.com/some_page.html?reload=1

сбросит(и обновит) кеш этой страницы. т.е. к любой своей страницы добавив параметр ?reload=1 можно будет сбросить ее кеш.

.............
D
На сайте с 28.06.2008
Offline
1108
#3

Вот что прописал в конфиге (привожу часть)

# Ответ не будет браться из кеша если proxy_cache_bypass не пустое и неравно 0
proxy_cache_bypass $cookie_62d357c5ff435ce807a428e8463639d2;
proxy_cache_bypass $cookie_joomlanocache;
proxy_cache_bypass $http_x_clear_cache;
proxy_cache_bypass $arg_reload;

перезагрузил Нгихс. На тестовой странице сделал изменение, увидео его сразу от авторизованного пользователя. Для НЕавторизованного - ничего не изменилось.

Зашел на эту тестовую страницу по адресу http://site.com/test?reload=1

Перезагрузил страницу - для НЕавторизованного - ничего не изменилось.

нажал ctrl + F5 - для НЕавторизованного - ничего не изменилось.

перезагрузил еще раз Нгихс - для НЕавторизованного - ничего не изменилось.

Что сделал не так?

Оптимизайка
На сайте с 11.03.2012
Offline
396
#4

"Зашел на эту тестовую страницу по адресу http://site.com/test?reload=1" неавторизованным пользователем заходили?

D
На сайте с 28.06.2008
Offline
1108
#5
Оптимизайка:
"Зашел на эту тестовую страницу по адресу http://site.com/test?reload=1" неавторизованным пользователем заходили?

Нет - авторизованным :)) Спасибо, теперь все ок!

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий