Мне часто нужно настраивать новые серверы Debian, поэтому я пытаюсь настроить прокси-сервер Squid для кеширования обновлений / обновлений apt-get. Но у меня всегда возникают проблемы с некоторыми конкретными файлами, которые он может получить.
Подробности:
моя конфигурация Squid выглядит так (ее части)
cache_peer upstream_proxy.internal.domain.tld parent 8080 0 no-query no-digest default
cache_replacement_policy heap LFUDA
cache_dir ufs /var/spool/squid3 1000 16 256
maximum_object_size 200 MB
refresh_pattern . 0 20% 4320 refresh-ims
При запуске установки Debian сначала он работает хорошо (squid доставляет пакеты правильно), но в какой-то момент он пытается получить Packages.gz файл, и этот никогда не будет доставлен. Я вижу следующие записи в access.log (не уверен, всегда ли они появляются или нет, похоже, нет)
1370855387.060 950995 <internal IP> TCP_MISS/200 679695 GET http://ftp.fr.debian.org/debian/dists/squeeze/main/binary-amd64/Packages.gz - DEFAULT_PARENT/upstream_proxy.internal.domain.tld application/x-gzip
1370855542.916 947999 <internal IP> TCP_MISS/200 2247441 GET http://ftp.fr.debian.org/debian/dists/squeeze/main/binary-amd64/Packages.gz - DEFAULT_PARENT/upstream_proxy.internal.domain.tld application/x-gzip
Если я использую свой прокси-сервер прямо в установщике Debian, все работает нормально, значит, это проблема конфигурации, но я не могу понять, что именно.
Кто-нибудь знает, в чем может быть проблема или как я могу ее отладить?
Записи в вашем журнале показывают, что файл извлекается после относительно длительного периода времени (951 секунда / 947 секунд), но имеет разную длину (679695 и 2247441 байт), несмотря на идентичный URI, что может указывать на проблему. Передача может завершиться по тайм-ауту примерно через 950 секунд и прервана - возможно, принудительно вышестоящим прокси.
Проверьте, можете ли вы успешно получить файл в разумное время, когда не используя Squid:
export http_proxy="http://upstream_proxy.internal.domain.tld:8080"
wget http://ftp.fr.debian.org/debian/dists/squeeze/main/binary-amd64/Packages.gz
и работайте оттуда, чтобы изолировать проблему. А tcpdump
передачи данных между вашим экземпляром прокси-сервера Squid и удаленным прокси-сервером может помочь решить проблему. Кроме того, если возможно, узнайте возможные причины проблем у администраторов / сотрудников службы технической поддержки используемого вами прокси.