Назад | Перейти на главную страницу

Ограничение количества одновременных подключений squid к одному серверу

Примечание: я спрашиваю о исходящий ограничение количества одновременных подключений, не входящих, что в достаточной мере рассматривается в существующих вопросах

Современные браузеры обычно открывают большое количество одновременных подключений, чтобы использовать тот факт, что TCP справедливо распределяет полосу пропускания между подключениями. Конечно, это не приводит к справедливому обмену данными между пользователями, поэтому некоторые серверы начали наказывать хосты, которые открывают слишком много соединений. Это ограничение можно настроить на стороне клиента (например, IE MaxConnectionsPerServer, Fire Fox network.http.max-connections-per-server), но метод отличается для каждого браузера и версии, и многие пользователи не могут самостоятельно его настроить. Итак, мы переходим к прозрачному HTTP-прокси Squid для централизованного управления загрузкой HTTP.

Как можно ограничить количество одновременных подключений от squid к удаленному веб-серверу, чтобы веб-сервер не воспринимал это как злоупотребление одновременными подключениями? В идеале ограничение будет на адрес источника. Squid должен принимать практически неограниченное количество одновременных запросов от клиентского браузера и отправлять их последовательно удаленному серверу, только N за раз каждому серверу, задерживая (но не отбрасывая) другие.

Для этого потребуется какая-то очередь запросов и межпроцессное взаимодействие, что значительно замедлит обработку запросов. Я не знаю ни одного прокси, который поддерживал бы это.

Обратите внимание, что большинство пользователей на самом деле не меняют количество одновременных подключений в своих браузерах, поэтому проблема не так уж и неудобна.