Forum Webscript.Ru
Общие => Веб Сервера => Тема начата: BigHarry от 26 Марта 2002, 12:11:43
-
Можно-ли как-то заставить Апач ограничить бандУ (ширину канала - Bandwidth) на выдачу файлов ?
-
Нет. Ставь брандмауер.
-
лучше, конечно, брендмауер.
можно ограничить кол-во одновременных запросов.
-
А с помощью скрипта - на пхп ?
Есть примеры подобных скриптов ?
Впрочем - наверно этот вопрос следует задать в другом месте...
-
Да веб сервер тут вообще ни причем. Он понятия не имеет на каком канале сидит. И скрипт соответственно тоже. Ограничение пропускной способности канала можно устроить только методами операционной системы (которых много).
-
ThE0ReTiC
А разве низзя файл из скрипта отдавать небольшими блоками с задержкой между отдачами ?
-
Можно, только как ты узнаешь принял ли клиент твой пакет данных или нет? Потом данный вопрос к теме топика не относится. :)
-
ThE0ReTiC
Ну если клиент не принял по причине обрыва соединения - скрипт сам собой завершится, а потом клиент если захочет докачать - должен в заголовке запроса послать директиву, что файл нужно брать начиная с определенного байта - скрипт проанализировав заголовок начнет клиенту "докачку"...
-
заголовке запроса послать директиву
И как он по твоему должен послать эту директиву? Не руками же ему запрос составлять.
-
Данлодеры типа ГетРайт и НетВампир посылают такие директивы, браузер Опера вроде тоже. Ну а если чел не сообразит выкачивать файл данлодером - это тады его проблемы - пусть при обрыве начинает заново...
В общем - суть в чем: клиенту дается линк на файл, типа:
http://myserver/download.php?id=123
сервер запускает скрипт, скрипт по базе смотрит - какой файл надо отдать - и начинает клиенту заливку.
-
Мона, конечно, через фтп выкладывать, но в этом случае теряется контроль - чел может ссылку надавать куче людей, а так - как только скрипт отдаст клиенту последний блок с данными - он удаляет из базы ID с номером файла - и больше никто его не выкачает....
-
это тады его проблемы
Нет дарагой. Это твои и только твои проблемы.
общем - суть в чем: клиенту дается линк на файл, типа:
http://myserver/download.php?id=123
сервер запускает скрипт, скрипт по базе смотрит - какой файл надо отдать - и начинает клиенту заливку.
А какое отношение эта задача имеет к веб-серверам?
-
Получается - что отношение слабое...
Вот работает вэб-сервер - юзер там через форму регистрится - получает линк на данлодный файл - и начинает его качать, забивая канал. Я подумал - можа в Апаче есть директива, указывающая что из такого-то каталога отдавать данные со скоростью 2 кило/сек - а в основном каталоге что бы ограничений не было, дабы остальным не мешать.
Но, похоже, такой фичи в Апаче нету, придется, похоже, на скриптах извращаться...
-
Нету конечно. Исходящий траффик регулируется совсем другим софтом.
-
А с помощью скрипта - на пхп ?
если с помощью php, следовательно, грузить лишними процессами web-сервер. Так можно вызвать перегруз сервера.
Тем более, что по умолчанию время выполнения php скрипта ограничено 30 сек.
-
Dm
Можно в конце концов если запущено слишком много - в том-же скрипте дать ответ - типа зайдите позже.
Ну а время выполнения скрипта мона задрать до бесконечности.
-
Кстати - по поводу бандЫ и Апача - есть такая весчь:
Apache httpd Bandwidth management - mod_bandwidth
ftp://ftp.cohprog.com/pub/apache/module/mod_bandwidth.c
Но как этот исходник откомпилить, да ещо что бы он встал под Апач-вин32 - мне непонятно...
-
Но как этот исходник откомпилить, да ещо что бы он встал под Апач-вин32 - мне непонятно...
Взять исходники под Win32, поставить на машину Visual Studio не ниже 5.0, и скомпилить с этим модулем.
-
Нда...
Стремно как-то все это компилить/линковать - вдруг непойми что на выходе получится - ваааще работать не будет.
Да к тому же - вычитал, что этот мод криво работает...
-
BigHarry
вот, к примеру, процесс php выполняется 0,001 сек. или 1 сек? есть разница?
имхо, лучше использовать брендмауер.
-
Dm
Я не вижу разницы.
Какая разница - апач будет трудится вместе с брандмаером, или запустится ещо один процесс - железяка мощная - потянет. К тому-же - не встречал я ещо брандмаера/прокси под НТ, который банду ограничивает, а аппаратные коммутаторы - слишком дорого...
-
железяка мощная - потянет.
Опыт показывает что мощных железяк практически не бывает.
брандмаера/прокси
Отдельно проксю, отдельно бранд. Не ищи универсальных решений.
-
ThE0ReTiC прав. Можно все зависит от нагрузки.
Дело в том, что брендмауер специально разрабатывался, оптимизировался именно под задачу ограничения трафика.
нужно использовать софт по назначению, имхо.
-
ps. решение на php
http://gb.moundalexis.com/~alex/downloads/load.phps