Hello BeerBong,
понедельник, 7 февраля 2000 г., you wrote:
B> В случае с роботами первый патч наверное подходит больше, так как робот
B> опрашивает всегда разные страницы.
B> musica.mustdie.ru - типичный пример, робот там может зависнуть надолго -
B> более 100 тысяч страниц.
B> Есть практика проблем с роботами ? Имеет ли смысл ставить первый патч. Не
Есть. На полит.ру эту проблему я решил тупо:
RewriteCond %{HTTP_USER_AGENT} some_spider
RewriteRule .* [F]
;)
B> привидет ли это к проблемам на страницах с кучей маленьких картинок, (опять
B> же musica.mustdie.ru) Я бы только ограничивал конечно количество коннектов с
B> одного адреса к скриптам. Но там глобальный контекст :( Хотя можно первый
B> патч на бекенд в таком случае поставить...
Вообще я посмотрел исходники этого патча. Там грубо сделано, конечно -
+ if (*errstr != '\0') {
+ r->status = HTTP_OK;
+ r->request_time = time(NULL);
+ r->proto_num = 1000; /* or something */
+ r->assbackwards = 0; /* who knows... */
+ r->protocol = "HTTP/1.0"; /* just not empty */
+ r->the_request = NULL;
+ r->method = NULL;
+ r->method_number = M_INVALID;
+ die(LIMIT_CONNECTIONS_BY_IP_ERROR, r);
+ log_transaction(r);
+ log_error(errstr, conn->server);
+ /* return r; */ return NULL;
+ }
- чистый садизм. хоть бы HTTP_FORBIDDEN возвращали... или
HTTP_SERVICE_UNAVAILABLE. Наиболее грамотно было бы, конечно, ставить
такие коннекты в какую-нибудь очередь. Но это уже будет очень нехилое
усложнение логики...
Best regards,
Ilya mailto:ilya@xxxxxxxxxx
=============================================================================
= Apache-Talk@xxxxxxxxxxxxx mailing list =
Mail "unsubscribe apache-talk" to majordomo@xxxxxxxxxxxxx if you want to quit.
= Archive avaliable at http://www.lexa.ru/apache-talk =
"Russian Apache" includes software developed
by the Apache Group for use in the Apache HTTP server project
(http://www.apache.org/) See
Apache LICENSE.
Copyright (C) 1995-2001 The Apache Group. All rights reserved.
Copyright (C) 1996 Dm. Kryukov; Copyright (C)
1997-2009 Alex Tutubalin. Design (C) 1998 Max Smolev.