У нас есть 2 сервера SSO Nexus с репозиториями прокси NuGet. Один из них находится в нашей частной сетевой среде (v3.0.0), другой находится в DMZ (v3.0.1) с доступом в Интернет.SonaType Nexus NuGet proxy 404 при переадресации на другой Nexus
Запрос сначала отправляется на частный сервер Nexus, который перенаправляет запрос на сервер Nexus в DMZ, который, в свою очередь, перенаправляет запрос во внешний репозиторий nuget.org. Итак, в основном:
клиент -> частный прокси -> dmz proxy -> интернет.
Используя этот метод, клиент получит ошибку Не удается найти пакет. Из журналов на частном прокси я вижу, что он отправляет запрос в прокси dmz как http://dmzproxy/repository/NuGetRepository/FindPackagesById?id= 'angularjs' , но получает 404 не найден.
Устранение проблемы, я попытался обойти частный прокси-сервер, запустив nuget.exe прямо с этого сервера, который будет:
клиент -> ДЗ прокси -> Интернет
Этот метод действительно работает, и с помощью nuget.exe с -verbosity подробно, я могу видеть, что nuget.exe посылает несколько иной запрос на ДМЗ прокси, чем частный прокси делает:
http://dmzproxy/repository/NuGetRepository/FindPackagesById()?id= «angularjs»
Com что с запросом, отправленным Nexus, вы можете видеть, что различие - это скобки() после FindPackagesById. Итак, для тестирования я копирую/вставляю оба URL-адреса запроса в окне браузера, и даже без круглых скобок я получаю 404, с круглыми скобками я получаю страницу с пакетом.
Итак, Nexus работает с круглыми скобками при обслуживании NuGet, но, похоже, не применяет их при пересылке запроса на другой сервер Nexus, вызывая ответ 404.