чт, 23 нояб. 2023 г. в 17:56, Vladislav Shabanov <vlad.shaba...@gmail.com>: > > Ну, как устроена реальная жизнь:
Спасибо за интересный логрид :) Но вот как устроена наша жизнь на примере maven: День 1 - Все так, да День N - А зачем обманывать исходный репозиторий? Если версии прибиты гвоздями - выдадим то, что просили. Если что-нибудь в духе 'm.n.+' - сначала вытянем оглавление (в случае maven это файл maven-metadata.xml), в нем найдем требуемую версию и ее уже отдадим. Если в итоге в CLASSPATH попли несколько версий одной и той же библиотеки - ну значит таков путь, разработчики сами себе буратины (хотя, возможно, именно этого они и хотели - и разные класслоадеры им в помощь) День М - И снова врать нехорошо, отдадим что просят - и непонятно зачем что-то выкидывать и скачивать заново У PyPI оглавление генерится на лету в виде HTML, но если мы знаем точные версии пакетов (хотя python-разработчики прописывают их в requirements.txt довольно редко) - они будут выкачиваться сразу А вот мире NPM packages-lock.json в дополнение к packages.json используют почти всегда - т.е. мы снова можем выкачивать явно указанные версии, в противном случае нужно сначала GET-запросами к API-серверу их узнать Одним словом, операции "скачать пакет какой-нибудь (наверное последней) версии" ни в одном из этих трех случаев нет - и описанные безобразия в день N и день М происходить не должны - т.е. репозитории Maven/PyPI/NPM выглядят вполне пригодными для кэширования именно на уровне HTTP Тут беда приходит откуда не ждали (и к логике репозиториев отношения не имеет): location /clojars { proxy_pass https://repo.clojars.org; } curl -v http://localhost/clojars/ * Trying 127.0.0.1:80... * Connected to localhost (127.0.0.1) port 80 > GET /clojars/ HTTP/1.1 > Host: localhost > User-Agent: curl/8.4.0 > Accept: */* > < HTTP/1.1 421 Misdirected Request < Server: nginx/1.25.3 < Date: Sun, 26 Nov 2023 06:49:03 GMT < Content-Type: text/plain; charset=utf-8 < Content-Length: 297 < Connection: keep-alive < x-served-by: cache-fra-eddf8230058 < Requested host does not match any Subject Alternative Names (SANs) on TLS certificate [f38588ca7dc3f37ec048583198230295986084302bfd4d5c2d944911bd377a95] in use with this connection. Visit https://docs.fastly.com/en/guides/common-400-errors#error-421-misdirected-request for more information. * Connection #0 to host localhost left intact И что-то я не могу подобрать комбинацию из proxy_ssl_*, чтоб repo.clojars.org отдал через pass_proxy что-нибудь более вразумительное - подскажете? Да, первоначальный вопрос про proxy_store vs proxy_cache* по-прежнему актуален :) -- WBR, Eugene Prokopiev _______________________________________________ nginx-ru mailing list nginx-ru@nginx.org https://mailman.nginx.org/mailman/listinfo/nginx-ru