Welcome! Log In Create A New Profile

Advanced

Re: Кэширование репозиториев maven/pypi/npm - proxy_cache или proxy_store

Eugene Prokopiev
November 26, 2023 01:52AM
чт, 23 нояб. 2023 г. в 17:56, Vladislav Shabanov <vlad.shabanov@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
Subject Author Posted

Кэширование репозиториев maven/pypi/npm - proxy_cache или proxy_store

Eugene Prokopiev November 23, 2023 06:30AM

Re: Кэширование репозиториев maven/pypi/npm - proxy_cache или proxy_store

Vladislav Shabanov November 23, 2023 07:24AM

Re: Кэширование репозиториев maven/pypi/npm - proxy_cache или proxy_store

Eugene Prokopiev November 23, 2023 09:24AM

Re: Кэширование репозиториев maven/pypi/npm - proxy_cache или proxy_store

Vladislav Shabanov November 23, 2023 09:58AM

Re: Кэширование репозиториев maven/pypi/npm - proxy_cache или proxy_store

Eugene Prokopiev November 26, 2023 01:52AM

Re: Кэширование репозиториев maven/pypi/npm - proxy_cache или proxy_store

Evgeniy Berdnikov November 26, 2023 02:34AM

Re: Кэширование репозиториев maven/pypi/npm - proxy_cache или proxy_store

Eugene Prokopiev November 26, 2023 02:42AM

Re: Кэширование репозиториев maven/pypi/npm - proxy_cache или proxy_store

Evgeniy Berdnikov November 26, 2023 03:00AM

Re: Кэширование репозиториев maven/pypi/npm - proxy_cache или proxy_store

Eugene Prokopiev November 29, 2023 04:40AM

Re: Кэширование репозиториев maven/pypi/npm - proxy_cache или proxy_store

Илья Шипицин November 23, 2023 08:26AM

Re: Кэширование репозиториев maven/pypi/npm - proxy_cache или proxy_store

MihaKot November 23, 2023 08:28AM

Re: Кэширование репозиториев maven/pypi/npm - proxy_cache или proxy_store

Eugene Prokopiev November 23, 2023 09:26AM

Re: Кэширование репозиториев maven/pypi/npm - proxy_cache или proxy_store

Илья Шипицин November 23, 2023 10:36AM

Re: Кэширование репозиториев maven/pypi/npm - proxy_cache или proxy_store

Eugene Prokopiev November 26, 2023 02:02AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 222
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready