CPAN
NORA работает как кеширующий прокси для CPAN. Тарболы дистрибутивов кешируются иммутабельно; индексные файлы обновляются по TTL. Это реестр только для проксирования — загрузка дистрибутивов через NORA не поддерживается.
Настройка клиента
Заголовок раздела «Настройка клиента»Укажите NORA в cpanm:
cpanm --from http://nora.example.com:4000/cpan Module::NameС --from NORA становится единственным зеркалом, поэтому и поиск модулей, и скачивание идут через неё.
Проксирование upstream
Заголовок раздела «Проксирование upstream»config.toml:
[cpan]enabled = trueproxy = "https://www.cpan.org"proxy_timeout = 30metadata_ttl = 300 # секундыserve_stale = trueПеременные окружения:
| Переменная | Описание | По умолчанию |
|---|---|---|
NORA_CPAN_ENABLED | Включить прокси CPAN | false |
NORA_CPAN_PROXY | URL upstream-зеркала CPAN | https://www.cpan.org |
NORA_CPAN_PROXY_AUTH | Аутентификация upstream (user:pass) | — |
NORA_CPAN_PROXY_TIMEOUT | Таймаут upstream в секундах | 30 |
NORA_CPAN_METADATA_TTL | TTL кеша индексов в секундах | 300 |
NORA_CPAN_SERVE_STALE | Отдавать устаревшую копию из кеша, когда upstream недоступен | true |
Возможности
Заголовок раздела «Возможности»| Функция | Статус | Примечание |
|---|---|---|
Индекс пакетов (modules/02packages.details.txt.gz) | Полная | Кешируется по TTL |
Список модулей (modules/03modlist.data.gz) | Полная | Кешируется по TTL |
Каталог авторов (authors/01mailrc.txt.gz) | Полная | Кешируется по TTL |
Скачивание дистрибутива (authors/id/…) | Полная | Иммутабельный кеш |
| Устаревшая копия при сбое upstream | Полная | x-nora-stale: true |
| Загрузка дистрибутива | — | Только прокси (чтение) |
Известные ограничения
Заголовок раздела «Известные ограничения»- Только прокси: загрузка дистрибутивов не поддерживается (
PUTотвечает405). - Веб-интерфейс группирует закешированные релизы по именам архивов; имя, которое не удаётся разобрать, не попадает в сгруппированный вид автора.
- Отключён по умолчанию. Установите
NORA_CPAN_ENABLED=trueдля активации.