попробуйте вот такое прописать в robots.txt User-agent: * Allow: / Crawl-delay: 5 Request-rate: 1/5 Visit-time: 1800-2359
8 августа 2016 г., 15:21 пользователь nNgzlTtv3k5lzmKRvlmS22tSl8sJr68k < nginx-fo...@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
_______________________________________________ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru