- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
В 2023 году Одноклассники пресекли более 9 млн подозрительных входов в учетные записи
И выявили более 7 млн подозрительных пользователей
Оксана Мамчуева
Все что нужно знать о DDоS-атаках грамотному менеджеру
И как реагировать на "пожар", когда неизвестно, где хранятся "огнетушители
Антон Никонов
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Кода 3-4 назад кодер делавший мне сайт написал мне функцию очистки кеша только одной нужной мне в данный момент страницы.
Я ей активно пользуюсь и она работала. Только что заметил что работать перестала. Когда - не знаю.
Вот код самой функции:
* Функция очистки кеша Nginx
*
* CommentsHelperQuery::clearCache('http(s)://*');
*
* @param string $value
* @return
*/
function clearCache($value)
{
jimport('joomla.filesystem.file');
if(!empty($value))
{
$data = parse_url($value);
$filename = md5('GET|site.ru|'.$data['path']);
JFile::delete('/var/cache/nginx/site/'.substr($filename, -1).'/'.substr($filename, -3, 2).'/'.$filename);
return true;
}
return false;
}
}
Подскажите мне как хотя бы начать проверять где ошибка?
В конфиге nginx для этого сайта прописано:
А libnginx-mod-http-cache-purge чем не устраивает?
https://docs.nginx.com/nginx/admin-guide/content-cache/content-caching/#purge_request
Хотелось бы починить то что уже работает. Я нашел где лежит кеш нужной для очистки страницы -
Dram, а перезапустить nginx после "очистки" пробовали? Например опция у nginx "sendfile on" может держать файловый дескриптор.
Если я перезапущу nginx - весь кеш ведь сбросится. А мне нужно только одну страницу почистить.
В админке сайта кодер мне сделал поле куда я вставлял полный урл той страницы которую нужно почистить и нажимал кнопку очистки кеша - и кеш этой страницы чистился.
Сейчас нажимаю, он мне пишет типа кеш очищен, но в реальности не чистит.
И по ftp я смотрю - файл кеша этой страницы на месте,не удаляется.
P.S. sendfile on присутствует в конфиге. Но файл то не удаляется
---------- Добавлено 07.02.2019 в 20:58 ----------
Я попробовал вывести на страницах сайта такой код:
$data = parse_url($value);
$filename = md5('GET|site.ru|'.$data['path']);
$fileput = ('/var/cache/nginx/site/'.substr($filename, -1).'/'.substr($filename, -3, 2).'/'.$filename);
echo $fileput;
?>
На нужно странице вывелось
Но меня смущает что на всех других страницах выводит точно такой же путь
А на echo parse_url($value); выдает - Array
Если я перезапущу nginx - весь кеш ведь сбросится.
С чего бы это, он кешированные страницы в файлах хранит.
libnginx-mod-http-cache-purge
На последних версиях Nginx это доступно только для владельцев коммерческой подписки.
У вас проблема с построением хеша для урла.
Попробуйте сделать
А в скрипте подобрать такой-же ключ через переменные, будет что-то вроде ваш_домен.com . $_SERVER['REQUEST_URI']
Я правда не помню, request_uri начинается со слеша или нет.
После этого сделайте то-же самое что и ваш прогер, от получившегося хеша с конца нужно сначала один символ потом два взять, и потом результирующий хеш - это и будет ваш файл со страницей.
Я нашел уже ошибку и все починил. Я мучал общий конфиг, а в конкретном конфиге сайта тоже была расписана схема хеширования и она отличалась от общей.
На последних версиях Nginx это доступно только для владельцев коммерческой подписки.
Оно в стандартных репах debian.