Re: Ограничение количества запросов
Илья Шипицин
chipitsine на gmail.com
Пн Авг 8 10:35:46 UTC 2016
попробуйте вот такое прописать в robots.txt
User-agent: *
Allow: /
Crawl-delay: 5
Request-rate: 1/5
Visit-time: 1800-2359
8 августа 2016 г., 15:21 пользователь nNgzlTtv3k5lzmKRvlmS22tSl8sJr68k <
nginx-forum на forum.nginx.org> написал:
> Поисковые боты часто дёргают сайты, чем создают большую нагрузку. Была
> предпринята попытка ограничить запросы к php-страницам.
> Вот конфиг nginx:
>
> http {
> ......
>
> limit_req_zone $bot_key zone=php_bot:100m rate=5r/s;
>
> log_format bot '$time_local $status $server_name ...'
>
> server {
> ......
>
> location ~* \.php$ {
> ......
>
> set $bot_key "";
> if ($http_user_agent ~* spider|bot|crawl|megaindex|yahoo){
> set $bot_key
> $server_name; }
>
> limit_req zone=php_bot;
> limit_req_status 503;
> limit_req_log_level notice;
>
> access_log /var/log/nginx/access-php-bot.log
> bot
> if=$bot_key;
> }
> }
> }
>
> Секций server { ... } несколько, они все идентичные.
> В итоге после полного перезапуска nginx в логе видим:
>
> 08/Aug/2016:12:27:00 +0300 200 site.com ... upstream_response_time=0.119
> 08/Aug/2016:12:27:00 +0300 503 site.com
> 08/Aug/2016:12:27:00 +0300 503 site.com
> 08/Aug/2016:12:27:00 +0300 200 site.com ... upstream_response_time=0.117
> 08/Aug/2016:12:27:00 +0300 503 site.com
> 08/Aug/2016:12:27:00 +0300 200 site.com ... upstream_response_time=0.116
> 08/Aug/2016:12:27:00 +0300 200 site.com ... upstream_response_time=0.022
>
> 08/Aug/2016:12:27:01 +0300 200 site.com ... upstream_response_time=0.129
> 08/Aug/2016:12:27:01 +0300 503 site.com ...
> 08/Aug/2016:12:27:01 +0300 200 site.com ... upstream_response_time=0.074
> 08/Aug/2016:12:27:01 +0300 503 site.com ...
> 08/Aug/2016:12:27:01 +0300 200 site.com ... upstream_response_time=0.030
> 08/Aug/2016:12:27:01 +0300 503 site.com ...
>
> За "01" секунду всего 3 успешно обработанных запроса, за предыдущую - 4,
> несмотря на то, что ограничение допускает обработку 5 запросов.
> Почему так, в чём ошибка ? Какая временная метка указывается в логе -
> момента прихода запроса или момента выдачи ответа ?
> Даже если временная метка - это момент выдачи ответа, то всё равно маловато
> выходит: за каждую из секунд не пропустилось максимально допустимое
> количество запросов.
> Как корректно проверять правильно ли работает конфигурация nginx, понял ли
> nginx то, что от него хотели ?
>
> Posted at Nginx Forum: https://forum.nginx.org/read.
> php?21,268830,268830#msg-268830
>
> _______________________________________________
> nginx-ru mailing list
> nginx-ru на nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru
----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mailman.nginx.org/pipermail/nginx-ru/attachments/20160808/0bac2ce5/attachment.html>
Подробная информация о списке рассылки nginx-ru