O Squid não armazena em cache a partir do npm, mas é de enrolar

1

Espero estar cego aqui, mas estou tentando armazenar em cache registry.npmjs.org de forma muito agressiva usando o squid, mas realmente não consigo trabalhar.

Eu compilei o squid com --enable-http-violations e estou recebendo os avisos quando ele é iniciado, e estou usando a seguinte linha de cache:

refresh_pattern -i registry.npmjs.org/.* 900 20% 4320 ignore-no-store ignore-auth ignore-private ignore-no-cache ignore-reload override-expire override-lastmod

Agora, parece estar em cache, como esperado, ao usar curl, mas não ao usar o cliente npm. Eu coloquei os dois logs abaixo, mas não consigo ver qual cabeçalho / diferença estaria causando um para armazenar em cache, mas o outro não para

Usando curl (caches como esperado):

1488230087.926      0 127.0.0.1 TCP_MEM_HIT/200 2710 GET http://registry.npmjs.org/should-util - HIER_NONE/- application/json [User-Agent: curl/7.51.0\r\nAccept: */*\r\nProxy-Connection: Keep-Alive\r\nHost: registry.npmjs.org\r\n] [HTTP/1.1 200 OK\r\nServer: nginx/1.10.1\r\nContent-Type: application/json\r\nLast-Modified: Mon, 08 Aug 2016 15:17:14 GMT\r\nETag: "57a8a27a-871"\r\nCache-Control: max-age=300\r\nContent-Length: 2161\r\nAccept-Ranges: bytes\r\nDate: Mon, 27 Feb 2017 20:44:44 GMT\r\nVia: 1.1 varnish\r\nAge: 0\r\nX-Served-By: cache-lcy1134-LCY\r\nX-Cache: MISS\r\nX-Cache-Hits: 0\r\nX-Timer: S1488228284.071646,VS0,VE18\r\nVary: Accept-Encoding\r\nConnection: keep-alive\r\n\r]

Usando o cliente npm (não armazena em cache):

1488230089.133     89 127.0.0.1 TCP_MISS/304 368 GET http://registry.npmjs.org/should-util - HIER_DIRECT/151.101.16.162 - [Accept-Encoding: gzip\r\nversion: 4.1.2\r\nAccept: application/json\r\nReferer: view should-util\r\nnpm-session: 169f8528ea8fd926\r\nnpm-in-ci: false\r\nUser-Agent: npm/4.1.2 node/v7.6.0 linux x64\r\nIf-None-Match: W/"57a8a27a-871"\r\nIf-Modified-Since: Mon, 08 Aug 2016 15:17:14 GMT\r\nConnection: keep-alive\r\nHost: registry.npmjs.org\r\n] [HTTP/1.1 304 Not Modified\r\nDate: Mon, 27 Feb 2017 21:14:49 GMT\r\nVia: 1.1 varnish\r\nCache-Control: max-age=300\r\nETag: W/"57a8a27a-871"\r\nAge: 83\r\nX-Served-By: cache-lcy1132-LCY\r\nX-Cache: HIT\r\nX-Cache-Hits: 2\r\nX-Timer: S1488230089.111498,VS0,VE0\r\nVary: Accept-Encoding\r\nConnection: keep-alive\r\n\r]
    
por Stono 27.02.2017 / 22:21

1 resposta

0

Tivemos um problema parecido com o uso do nginx proxy_cache para caching de objetos em proxy para o NPM - no speedtest.net acabamos usando este projeto: link para solicitações de cache para o NPM. Funciona muito bem com módulos privados também. Usamos em mais de 40.000 compilações sem problemas e lidamos com interrupções de npm sem problemas.

Com isso dito, enfrentamos problemas com ele e com o Yarn, embora possa ser culpa do Yarn.

    
por 04.08.2017 / 20:55

Tags