Нестандартная задачка, нужна помощь (nginx как кеширующий прокси для urpmi)

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС.

Модераторы: SLEDopit, Модераторы разделов

Аватара пользователя
MozG1986
Сообщения: 103
ОС: Mageia5, Mageia6

Нестандартная задачка, нужна помощь

Сообщение MozG1986 »

Хочу сделать кеширующий прокси для репозитариев mandriva linux.
Идея такая. Прокси ссылается на внешний репозитарий, клиенты в сети настроены на использование локального сервера в качестве репозитария. При попытке скачать и установить с него пакет, nginx должен проверить наличие файла в локальном хранилище и, при его отсутствии там, перенаправить запрос на внешний репозитарий, а скачанный файл сохранить в локальном хранилище.
Очень желательно сохранять структуру папок внешнего репозитария в локалном хранилище и оригинальные имена файлов, чтобы можно было чистить его rsync-ом (скорее всего придется создать на каждую папку свой виртуальный хост).
Файлы в локальном хранилище должны храниться вечно, пока их не удалит rsync.

Таким образом можно предоставить доступ ко всем пакетам внешнего репозитария больше чем одному компьютеру в сети, при этом не придется гонять байты по нескольку раз по внешке.

С nginx никогда не работал, у меня есть только идея. Прошу помощи в реализации
Спасибо сказали:
smaharbA
Сообщения: 229
ОС: Windows Vista

Re: Нестандартная задачка, нужна помощь

Сообщение smaharbA »

и где тут нестандартность ?
Я конечно далек от мысли...(с)
Спасибо сказали:
Аватара пользователя
Frank
Сообщения: 1059
ОС: Ubuntu, Debian

Re: Нестандартная задачка, нужна помощь

Сообщение Frank »

Видимо, нужно аналог apt-cacher'а, но для rpm. Я бы тоже не прочь поднять такой сервис у себя на дебиане.
Изображение
Спасибо сказали:
Аватара пользователя
MozG1986
Сообщения: 103
ОС: Mageia5, Mageia6

Re: Нестандартная задачка, нужна помощь

Сообщение MozG1986 »

наткнулся уже на 2 варианта (вернее их 3) но с фтп
http://linux-admin.net.ru/en/kern/ftpfs.html
http://www.it-simple.ru/?p=2785
https://sourceforge.net/projects/lftpfs/
Спасибо сказали:
Аватара пользователя
eddy
Сообщения: 3321
Статус: Красный глаз тролля
ОС: ArchLinux

Re: Нестандартная задачка, нужна помощь

Сообщение eddy »

А если написать простенький CGI, проверяющий наличие в локальном хранилище запрашиваемого файла и передающего его, если он есть, или же скачивающего из интернета, а затем передающего, если файла нет?
RTFM
-------
KOI8-R - патриотичная кодировка Изображение
Спасибо сказали:
Аватара пользователя
MozG1986
Сообщения: 103
ОС: Mageia5, Mageia6

Re: Нестандартная задачка, нужна помощь

Сообщение MozG1986 »

можно и так, ищу пути попроще и покрасивше)))

lftpfs - самый элегантный и простой способ, нужно только не забыть перед компиляцией поставить нужные ему перловские модули

Так, опять траблы, ftpfs работает только с ядром 2.4, curlftpfs не кеширует, а lftpfs собирается, монтирует папку, но при попытке ее просмотра вываливается с ошибкой
Спасибо сказали:
Аватара пользователя
Frank
Сообщения: 1059
ОС: Ubuntu, Debian

Re: Нестандартная задачка, нужна помощь

Сообщение Frank »

Честно говоря, я не понял, при чём тут lftpfs, ftpfs, curlftpfs и всё такое. Apt-cacher(-ng) делает следующую работу:
- проксирует запросы на скачивание сорслистов и deb пакетов, кэшируя полученное;
- отслеживает устаревание пакетов и подчищает залежавшиеся, никому уже не нужные;
- может (пока лишь после ручного пинка) проверить целостность лежащих в кэше пакетов и перескачать повреждённые;
- не даёт качать "левак" (с неразрешённых репозиториев).
Отдельно взятый FTP сервер тут ни при делах, слишком много ручных действий по поддержанию потребуется. К сожалению, видимо, этот вопрос (проксирование rpm на deb системах) совершенно не проработан... Может быть, есть что-то для rpm систем? Можно было бы попытаться прикрутить...
Изображение
Спасибо сказали:
Аватара пользователя
mikes
Сообщения: 294
ОС: ubuntu

Re: Нестандартная задачка, нужна помощь

Сообщение mikes »

MozG1986 может вернёмся к варианту с полноценным зеркалом? :)
Спасибо сказали:
neol
Сообщения: 600
ОС: Debian Stable

Re: Нестандартная задачка, нужна помощь

Сообщение neol »

Спасибо сказали: