Я пытаюсь настроить кеш локального репозитория для dnf. Идея состоит в том, чтобы одна машина в сети загружала пакет, а затем любая другая машина в сети, пытающаяся получить пакет, получит его из кеша. Я использую для этого squid, и в настоящее время у меня есть dnf, запрашивающие пакеты через сервер squid, но squid каждый раз регистрирует промах. Я не уверен, что вызывает это, поэтому скопирую типичное сообщение access.log и соответствующий раздел в squid.conf.
1450150756.680 131 10.64.9.57 TCP_MISS/200 183815 GET
http://mirror.crucial.com.au/fedora/linux/updates/23/x86_64/l/libquadmath-5.3.1-2.fc23.x86_64.rpm -
FIRSTUP_PARENT/[parent-proxy-url] application/x-redhat-package-manager
[Host: mirror.crucial.com.au
User-Agent: dnf/1.1.4
Accept: */*
Proxy-Connection: Keep-Alive]
[HTTP/1.1 200 OK
Expires: Sun, 13 Dec 2015 22:57:47 GMT
Server: nginx/1.8.0
Date: Tue, 15 Dec 2015 03:39:07 GMT
Content-Type: application/x-redhat-package-manager
Content-Length: 183182
Last-Modified: Thu, 10 Dec 2015 20:53:32 GMT
ETag: "5669e64c-2cb8e"
Age: 0
Connection: keep-alive
Proxy-Connection: keep-alive
Via: 1.1 NZ8KS49CH
X-Cache-Lookup: HIT from NZ8KS49CH (M86 Security Proxy Cache)
X-Cache: HIT from NZ8KS49CH (M86 Security Proxy Cache)
X-WebMarshal-RequestID: C3F30882-D914-481F-8E60-2AD367A4A046]
А вот и конф:
cache_peer [parent-proxy-url] parent 8081 0 no-query no-digest proxy-only default login=[user]:[pass]
acl all src 0.0.0.0/0 ::/0
never_direct allow all
maximum_object_size 4096 MB
# Uncomment and adjust the following to add a disk cache directory.
cache_dir ufs /var/spool/squid 10000 16 256
# Leave coredumps in the first cache dir
#coredump_dir /var/spool/squid
cache_replacement_policy heap LFUDA
acl filetype urlpath_regex \.rpm
cache allow filetype
send_hit allow filetype
cache deny all
#
# Add any of your own refresh_pattern entries above these.
#
refresh_pattern -i .rpm$ 129600 100% 129600 refresh-ims override-expire
refresh_pattern -i .iso$ 129600 100% 129600 refresh-ims override-expire
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
refresh_pattern . 0 20% 4320
Я также заметил, что когда я настроил его так, что мой веб-браузер был направлен через squid, некоторые вещи были кэшированы. Как только я настроил только dnf, ничего не кешируется.
Догадаться. Строка cache_peer включает "только прокси", что останавливает кэширование формы squid чего-либо от этого узла. Удаление термина «только прокси» полностью устранило проблему. Думаю, я почерпнул это из какого-то онлайн-урока, который, должно быть, пытался что-то другое для меня.