NGinx cache de proxy para pacotes do Ubuntu

0

Eu configurei o NGinx para atuar como um proxy de armazenamento em cache:

server {
        listen  3128;

        access_log      /var/log/nginx/cache-access.log combined_hostname;
        error_log       /var/log/nginx/cache-error.log;

        allow   10.0.0.0/8;
        allow   127.0.0.0/8;
        deny    all;

        resolver        127.0.0.1;

        # Merge /pool/ of all upstreams together
        location ~ /pool/(.*) {
                proxy_cache_valid       1y;
                proxy_store     /srv/cache/pool/$1;
                proxy_pass      $scheme://$host$request_uri;
        }

        # Cache things other than the .deb files themselves per host
        location / {
                proxy_cache_valid       1d;
                proxy_store     /srv/cache/$host/$request_uri;
                proxy_pass      $scheme://$host$request_uri;
        }

}

Também apontei apt -utilities para usar o cache:

Acquire::http::Proxy "http://dat.host.example.net:3128";
Acquire::https::Proxy "http://dat.host.example.net:3128";

Isso funciona, mas apenas para repositórios de pacotes acessados via http regular. Aqueles que desejam ser acessados via https, todos falham (algo sobre "cabeçalhos inválidos").

O que estou fazendo de errado? Por enquanto, eu simplesmente defino o https::Proxy para "DIRECT" , mas gostaria de fazer o cache dos pacotes, independentemente do método usado para baixá-los ...

    
por Mikhail T. 24.08.2017 / 00:31

1 resposta

0

Ok, aparentemente, NGinx não pode proxy HTTP regular em HTTPS . Seu autor principal apenas diz: "Use Squid" .

Felizmente para nós, os repositórios de pacotes upstream que usam SSL redirecionam automaticamente HTTP para HTTPS - um redirecionamento, que o proxy NGinx seguirá silenciosamente.

Existe também um patch para NGinx para preencher esta omissão, mas por enquanto não precisamos disso e pode ficar com o estoque NGinx fornecido pelo Ubuntu.

    
por Mikhail T. 24.08.2017 / 16:23