LINUX.ORG.RU
ФорумAdmin

Многопоточное скачивание в Apache


0

0

Только что пара идиотов положила мой сервер, запустив скачивание двух разных файлов в 50 потоков каждый. Сервер упёрся в MaxClients и другие запросы ждали своей очереди. Как можно остановить такое безобразие? Хотелось бы, чтобы клиент не мог одновременно качать один и тот же файл.

Нашёл http://dominia.org/djao/limitipconn.html , но оно ограничивает количество одновременных соединений вообще, а я хочу, чтобы пользователь во время скачивания файла в один поток не был отрезан от сервера.

Ответ на: комментарий от edigaryev

<IfModule mod_limitipconn.c>
<Location /dir1>
MaxConnPerIP 1
</Location>
<Location /dir2>
MaxConnPerIP 1
</Location>
</IfModule>

edigaryev ★★★★★
()

фаерволом проще всего. Можно модулями апача, их много. Но фаерволом ты не тока апач можешь прикрыть, но и другие tcp-сервисы.

true_admin ★★★★★
()
Ответ на: комментарий от true_admin

И как firewall-ом определить идёт скачивание большого файла или обычной html-страницы ? Такие ограничения нужно делать исключительно в apache, firewall - это сильно жёстко

spirit ★★★★★
()
Ответ на: комментарий от spirit

iptables connbytes. А вообще какая разница что это идёт если чювак создаёт много соединений? Дать по 50коннектов на ip, этого, обычно, достаточно.

Или поставить фронтенд который не пукнет от нескольких сотен соединений с одного ипа.

true_admin ★★★★★
()
Ответ на: комментарий от true_admin

connbytes - это да, но тип закачки определим тогда, когда tcp-соединение будет уже давно установлено. Если с этого момента будем делать DROP/REJECT, apache всё равно не получит никаких уведомлений что "всё уже", так и будет висеть, выжидать timeout-ы.
Поэтому лучше действительно не заморачиваться на закачки/не_закачки, а поставить перед apache-м какой-нибудь nginx, и жёстко задать кол-во подключений на IP (в firewall-е).

spirit ★★★★★
()

курим маны и видим для mod_limitipconn чудесную опцию:
OnlyIpLimit mime/type

Прописываем туда разновсяческие видео, аудио, и другие большие файлы - и для них один конект. А для обычных хтмл-страничек - сколько угодно.
Также есть опция NoIpLimit - устанавливаем туда text/html, и лимитируется все кроме HTML.
Также можно покурить в сторону модуля mod_bandwidth и ограничить всем качающим с определенного каталога скорость. Короче широкое поле для фантазии.

Komintern ★★★★★
()

Я написал программу для защиты от DDoS-атак, задача подобна твоей. Может быть, подойдет моя програма? Могу опубликовать ее под свободной лицензией GNU GPLv3 бесплатно. Если заплатишь - хорошо.
Написана была на заказ для одного заказчика с сайта типа Freelance.ru, заказчик больше не проявляет интереса к этой программе, поэтому - обращайтесь.
Написана на Си, чисто, без использования дополнительных библиотек кроме стандартных. Является по-сути дела, фильтром-анализатором файлов отчетов apache.

pacify ★★★★★
()
Ответ на: комментарий от pacify

А не проще ли на перле, питоне или bash такое было написать?

PS покажи исходники, может что-нить интересное для себя найду :)

true_admin ★★★★★
()
Ответ на: комментарий от true_admin

Разберусь с основной работой - опубликую. На Си написана исходя
из требований заказчика (выделенный сервер, gcc, быстрая работа).
На случай, если будет необходимо, мой Jabber: lubyagin@jabber.ru

pacify ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.