Nginx как прокси NPM - PullRequest
       4

Nginx как прокси NPM

0 голосов
/ 27 марта 2019

Я пытаюсь использовать nginx в качестве прокси-сервера для кэширования npm.У меня проблемы с получением файлов tgz.Каждый раз, когда я пытаюсь установить пакеты через npm, устанавливаем --verbose.NPM отправляет список файлов из http: /// repository / npm-proxy / angular, но затем пытается извлечь файлы tgz напрямую из https://registry.npmjs.org. Посмотрите журнал:

npm http fetch GET 200 http://<my_ip>/repository/npm-proxy/angular 66ms
npm http fetch GET 200 https://registry.npmjs.org/angular/-/angular-1.6.9.tgz 91ms

У меня естьустановить реестр в .npmrc следующим образом:

registry=http://<my_ip>/repository/npm-proxy/

Кроме того, все ссылки на файлы tgz (tarballs) в ответ на эту ссылку (http: /// repository / npm-proxy / angular) былиобновляется в соответствии с моим ip, используя sub_filter Nginx, поэтому я предполагаю, что npm будет использовать обновленные ссылки для извлечения файлов tgz.Но нет, он использует https://registry.npmjs.org. Я тестировал это поведение с различными проектами, результат идентичен.

NPM пытается отправить информацию аудита на мой ip, в случае неудачи он пытается использовать внешний реестр.

npm http fetch POST 404 http://<my_ip>/-/npm/v1/security/audits/quick 16ms
npm http fetch POST 200 https://registry.npmjs.org/-/npm/v1/security/audits/quick 316ms

Но на стороне nginx я не вижу запросов, относящихся к тарболам.

Моя конфигурация nginx здесь. https://pastebin.com/4m6MMQXk

Почему npm пытается получить тарболыот https://registry.npmjs.org?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...