ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
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


 




Copyright © Lexa Software, 1996-2009.