Экономим траффик (и зеркалируем репозитории) с помощью squid.

Это только половина того что можно сделать для изменения кеширования с apt-cache на sqiud. В качестве бонуса к кешированию всего web-трафика вы получите так же возможность прокешировать пакеты .deb. Если вы делаете много обновлений и хотите сэкономить время и трафик — эта статья для вас.

  1. Найдите машину которая будет сервером.
  2. Установите squid:

    sudo apt-get install squid

  3. Сконфигурируйте squid отредактировав /etc/squid/squid.conf (Этот файл очень большой, так как вероятно самый комментированный за всю историю UNIX)По умолчанию squid не принимает подключения от удаленных хостов, так что требуется изменить одну строку (Сервер в примере не смотрит в интернет):

    http_access allow all #прости меня госпади...

    И добавьте то что ниже (Это паттерны на то сколько и как обновлять кеш):

    refresh_pattern deb$ 1577846 100% 1577846
    refresh_pattern udeb$ 1577846 100% 1577846
    refresh_pattern Packages.gz$ 1440 100% 1440
    cache_dir ufs /var/spool/squid 15000 2 8
    maximum_object_size 409600 KB

  4. Перезапускаем squid:

    sudo /etc/init.d/squid restart

  5. Конфигурируем вашу рабочую машину на использование нового сервера, это можно сделать к примеру через графическую утилиту GNOME Proxy gui (squid весит по умолчанию на 3128 порту так что если вы это меняли — то измените и в нужных параметрах вашей машины), или через http_proxy в вашем окружении, или для apt в /etc/apt/apt.conf:

    Acquire::http::Proxy «http://192.168.1.117:3128»

  6. Смотрим что работает. На сервере выполняем

    sudo tail -F /var/log/squid/access.log

    для просмотра лога. Теперь на одной из машин делаем apt-get update и upgrade и лог должен будет показать кучуf TCP_MISS строк для каждого скачиваемого вами deb пакета. Теперь идем на вторую машину и делаем тоже самое. Каждый раз на запрос deb пакета будет показано что-то вроде TCP_REFRESH_HIT, которое означает что squid принял запрос и отправляет deb-пакет напрямую на эту машину. Повторяем упражнение для остальных машин. Все работает и для PPA и для других сайтов, откуда вы качаете deb.

Оригинал статьи тут — http://castrojo.wordpress.com/2009/10/27/saving-some-bandwidth-and-the-mirrors-with-squid/

Автор: Mirivlad

Скромный труженик консоли и окошек.