Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Помогите разобраться от куда берутся левые get-зап росы
On 24.11.2011 6:58, valet wrote:
Выделенный сервер на Debian, на котором
много сайтов (bind9, nginx+php-fpm).
Столкнулся с очень странной проблемой.
В логах nginx отдельных хостов с завидной
регулярностью замечаю get-запросы
страниц другого сайта.
То есть например в логе первого сайта
site1.ru.access.log Googlebot/2.1 и другие боты
запрашивают страницы второго сайта
...
..."GET /stranica-site2-1.html HTTP/1.1"...
...
..."GET /stranica-site2-n.html HTTP/1.1"...
...
На самом деле это урл-ы сайта site2.ru и
ссылок естественно таких на site1.ru нигде
нет, поэтому то, что они запрашиваются
тем боле поисковыми ботами, может
означать только одно - ошибка где-то в
конфигах. Я в первую очередь подумал,
что дело в кешировании fast-cgi-запросов на
nginx и убрал его - но это на мое удивление
не решило проблему.
да, причина этих проблем в не совсем верно
настроенном кешировании fast-cgi-запросов.
Я не могу понять почему такое может
происходить и куда копать дальше.
раньше Ваш сервер отдавал страницы site2 при запросе к site1,
поисковые машины уже проиндексировали эти страницы,
и потом начали ходить на сайт проверять обновления.
чтобы они прекратили это делать - для несуществующих
страниц необходимо возвращать код ошибки 404.
# fastcgi_cache_key
"$server_addr:$server_port$request_uri|$cookie_phpsessid"; #
Формируем уникальный ключ; в данном
случае различаем пользователей с
помощью $cookie_phpsessid
ключ совсем не уникальный для не-залогиненных пользователей.
потому что $cookie_phpsessid будет пустой строкой,
а $server_addr:$server_port для всех/части сайтов
на этом сервере будут одинаковые, это будет 11.22.33.44:80
некоторая часть $request_uri у разных сайтов может совпадать,
например, если $request_uri == '/', что собственно и произошло.
в официальной документации к nginx
http://nginx.org/ru/docs/http/ngx_http_fastcgi_module.html#fastcgi_cache_key
приведен не очень удачный пример, там нет переменной $host
более понятный пример на сайте вики:
http://wiki.nginx.org/HttpFcgiModule
fastcgi_cache_key "$scheme$request_method$host$request_uri";
--
Best regards,
Gena
_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru
|