Я настроил NGinx для действия как кэширующийся прокси:
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;
}
}
Я также указал apt
- утилиты для использования кэша:
Acquire::http::Proxy "http://dat.host.example.net:3128";
Acquire::https::Proxy "http://dat.host.example.net:3128";
Это работает, но только для хранилищ пакетов получил доступ через регулярный http. Они, то желание, к которому получат доступ через https, весь сбой (что-то о "недопустимых заголовках").
Что я делаю неправильно? В настоящее время я просто установил https::Proxy
кому: "DIRECT"
, но я хотел бы кэшироваться, пакеты независимо от метода раньше загружали их...
Хорошо, по-видимому, NGinx не может использовать обычный HTTP-прокси в HTTPS . Его основной автор просто говорит: «Используйте Squid» .
К счастью для нас, исходящие пакеты-репозитории с использованием SSL автоматически перенаправляют HTTP в HTTPS - перенаправление, за которым спокойно будет следовать прокси-сервер NGinx.
Существует также патч для NGinx , чтобы заполнить это довольно зияющее упущение, но пока нам это не нужно и мы можем придерживаться стандартного NGinx, поставляемого Ubuntu.