Dram

Рейтинг
1114
Регистрация
28.06.2008

Nopassw0rd, ну естественно - Управление блокировкой - Все сайты - URL-адреса рекламодателя

Nopassw0rd:
Внесите в скрипт тильду и не будет головняков.

Зачем давать им даже десятки просмотров? Вы что все мазахисты?

Давно все тильды, блогспоты, укозы в блоке по домену в самом интерфейсе гугла. Что вы мучаетесь с ними не понимаю?

Вот скрипт бана IP подсетей всех крупных хостеров мира - должно помочь

/ru/forum/958253

Пробовал - при загрузке моя высота заменяется на height auto

Благо такая вакханалия длилась примерно час, потом блоки стали нормальные. При этом эксперименты выключены.

Ошибка найдена!

В конфиге конкретного сайта что я мучаю была своя директива - fastcgi_cache_key поэтому я и запутался

А как проверить? У меня одна из самых последний версий Nginx, в прошлом месяце только обновил

Skom:
Попробуйте поменять в функции
$filename = md5('GET|site.ru|'.$data['path']);
на
$filename = md5('GET|'.$data['host'].'|'.$data['path']);

Хеш оожидаемо один и тот же получается

---------- Добавлено 08.02.2019 в 12:32 ----------

Я делал еще проще - в конфиге Nginx прописал

fastcgi_cache_key "$request_uri";

в функции

$filename = md5($data['path']);

проверил - хеш получается одинаковый.

Теперь проверяю удаление - не удаляет зараза!

Начинаю смотреть ,а Nginx реально создает файл кеша по пути

/var/cache/nginx/site/c/04/d840acd78808e4dfb8c50bc20eb1c04c

А echo $fileput; мне выводит

/var/cache/nginx/site/2/90/8b9e11c9867054d31498a914b3fe3902

Вероятно проблема тут - fastcgi_cache_key "$request_uri";

Я не понимаю как Nginx ее хеширует - как это проверить?

Посмотрел в конфиге - хеш строится таким образом:

fastcgi_cache_key "$request_method|$host|$request_uri";

Ну и вроде бы это согласуется в этим - $filename = md5('GET|site.ru|'.$data['path']);

Или нет?

---------- Добавлено 08.02.2019 в 09:52 ----------

Попробовал еще так

<?php
$url = 'https://site.ru/test';
$data = parse_url($url);
$filename = md5('GET|site.ru|'.$data['path']);
$fileput = ('/var/cache/nginx/site/'.substr($filename, -1).'/'.substr($filename, -3, 2).'/'.$filename);
print_r($data);

?>

получил - Array ( [scheme] => https [host] => site.ru [path] => /test )

---------- Добавлено 08.02.2019 в 09:59 ----------

Так же решил посмотреть что выводит

<?php
echo $_SERVER['REQUEST_METHOD'].$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
?>

получил ожидаемое

GETsite.ru/test

---------- Добавлено 08.02.2019 в 10:02 ----------

Затем решил сравнить хеши

<?php
$url = 'https://site.ru/test';
$data = parse_url($url);
$filename = md5('GET|site.ru|'.$data['path']);
$fileput = ('/var/cache/nginx/site/'.substr($filename, -1).'/'.substr($filename, -3, 2).'/'.$filename);
echo $filename;

?>
<br>
<?php
echo md5($_SERVER['REQUEST_METHOD']|.$_SERVER['HTTP_HOST']|.$_SERVER['REQUEST_URI']);
?>

И получил два одинаковых хеша, но они не совпадают с реальных хешем страницы кеша которую сгенерировал Nginx

Skom, вы правы!

Я вывел такой код:

<?php
$url = 'https://site.ru/test';
$data = parse_url($url);
$filename = md5('GET|site.ru|'.$data['path']);
$fileput = ('/var/cache/nginx/site/'.substr($filename, -1).'/'.substr($filename, -3, 2).'/'.$filename);
echo $fileput;
?>

мне вывело (на тестовой странице)

/var/cache/nginx/site/d/ba/356a0f4b9422cf44543b8e614b588bad

а ее кеш лежит тут

/var/cache/nginx/site/c/04/d840acd78808e4dfb8c50bc20eb1c04c

Такое впечатление что Nginx как то по другому берет Хеш страницы.

Как это проверить?

Skom, а как найти что такое $value ?

Я сделал поиск по файлам:

root@fin ~ # grep -irl '$value' /var/www/site/administrator/components/com_comments

/var/www/site/administrator/components/com_comments/models/item.php

/var/www/site/administrator/components/com_comments/helpers/query.php

query.php - это файл с функцией из 1 поста

а в item.php есть такой кусок

if(!empty($data['images']))
{
$ids = array();
foreach($data['images'] as $index => $value)
{
$ids[] = $index;
}

Если сделать поиск по grep -irl '$value' /var/www/site/administrator/components то $value встречается чуть ли не во всех компонентах

Всего: 6924