FreeSource: AltLinux/Apt/NginxAsCache

Эта страница была перенесена на altlinux.org. Текст на freesource.info заморожен.

Использование 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