FreeSource : AltLinux/Apt/NginxAsCache

Использование nginx как кэширующего прокси для APT


При использовании дистрибутивов ALT Linux или ALT Linux Sisyphus часто требуется локальное частичное зеркало APT-источников: для раздачи пакетов группе машин в локальной сети, для разработки и других потребностией. Локальное – для хорошей скорости доступа, частичное – для экономии времени и трафика, которые уходят на поддержание полного зеркала.

Очевидное решение: вытаскивать из /var/cache/apt/archives или /hasher/aptbox пакеты, запускать genbasedir и подключать результат как локальный репозитарий. Очевидный недостаток: теряется информация о конкретном источнике пакета. Если подключен и бранч, и сизиф, то полученный репозитарий нельзя использовать на другой машине, которую желательно оставить на бранче.

nginx >= 0.5.31 позволяет организовать локальный частичный миррор, лишённый этого недостатка.

Конфигурация nginx


nginx.conf:


/etc/apt/sources.list:


И сделать

Более умная конфигурация nginx


Чтобы пользователи APT не заботились о том, на какое зеркало настроен nginx, его нужно слегка перенастроить:

nginx.conf:


/etc/apt/sources.list:

Известные проблемы


nginx – это все-таки не настоящий кэширующий прокси, и обновлять сохраненные файлы он не намерен независимо от Last-Modified.
Сами пакеты меняться не могут, поэтому это составляет проблему только для индексов APT, так что необходимо периодически делать


Если пакеты на сервере обновляются, в нашем кэше будут накапливаться старые версии. Почистить можно так:


Эта команда удалит из локального репозитория все файлы, которых нет на сервере, и заодно обновит индексы.

Информация об авторе


Взято из этой публикации gns.

Добавлено 24.03.08 by Черносов Денис

Пробовал внедрить рецепт на версии nginx-0.5.33-alt1.M40.1

обнаружил, что помещение нескольких директив proxy_pass в один раздел location приводит к ошибке такого вида:


Также в моем случае вылезала ошибка:


После модификаций конфиги выглядят следующим образом:

/etc/apt/sourses.list


/etc/nginx/nginx.conf



Страницы, ссылающиеся на данную: AltLinux/Apt