The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
Задача не пускать большие файлы через parentproxy, !*! napTu, 20-Окт-05, 14:32  [смотреть все]
Есть следующая задача:
наземный канал, роутер со сквидом, спутниковый канал на отдельном прокси.
Необходимо ограничить размер файлов (не более чем Х кбайт) через спутник и пускать их по земле.
На данный момент спутниковый прокси стоит как parent для сквида и на этот parent пропускается весь трафик не соответствующий мультимедийным расширениям:
acl localnet ...
acl media urlpath_regex -i /.avi$ ...
cache_peer_access deny media
cache_peer_access allow localnet
cache_peer_access deny all

Для более надежной защиты от большого (и дорогого) трафика через спутник я пробовал использовать
reply_body_max_size 512000 deny media
#^^не ограничивать для всех мултимедиа файлов, т.к. они и так идут по земле
reply_body_max_size 512000 allow localnet
#^^ограничить размер остального трафика, который направляется через спутник.
НО ТАКАЯ конструкция не работает! ограничение срабатывает в любом случае, на все файлы, если в любом месте есть строка allow localnet, даже так:
reply_body_max_size 512000 deny all
reply_body_max_size 512000 allow localnet
reply_body_max_size 512000 deny all
Кто нибуть знает почему так и как это обойти?
На данный момент я сделал так:
reply_body_max_size 512000 allow !media

Получается что любой НЕ медиа файл размером более 512000 запрещен для загрузки в любом случае.
Задача состоит в разрешении файлов более 512000 ходить по земле, и не ходить через спутник.
Как это реализовать???

  • Задача не пускать большие файлы через parentproxy, !*! napTu, 14:38 , 20-Окт-05 (1)
    другими словами, как указать в acl максимальный размер файла?
    • Задача не пускать большие файлы через parentproxy, !*! napTu, 15:25 , 20-Окт-05 (2)
      вот что я нашел похожее по этому поводу,
      но непонятно как это применить для reply_body вместо request_body

      On Mon, 26 Apr 2004, Michael Gale wrote:

      > Can I use "request_body_max_size" inside a acl ?

      There only is one single limit in this directive.

      But it is possible to invent a new acl for this using the external acl
      interface. request_body_max_size looks into the Content-Length request
      header, available to external_acl_type as %{Content-Length}


      This silly shell script should work

      #!/bin/sh
      while read line; do
        set -- $line
        length="$1"
        limit="$2"
        if [ "$length" -le "$2" ]; then
           echo OK
        else
           echo ERR
        fi
      done


      Use this as

      external_acl_type request_body %{Content-Length} /path/to/above/script

      acl request_max_20MB request_body 20971520


      This acl can then be used in http_access to match requests up to the given
      size. If you need different sizes just define new acls with different
      limits in bytes (20971520 == 20480 * 1024 == 20480 KB)

      Regards
      Henrik




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру