![Squid 可以在本地缓存父代理响应吗?](https://linux22.com/image/727813/Squid%20%E5%8F%AF%E4%BB%A5%E5%9C%A8%E6%9C%AC%E5%9C%B0%E7%BC%93%E5%AD%98%E7%88%B6%E4%BB%A3%E7%90%86%E5%93%8D%E5%BA%94%E5%90%97%EF%BC%9F.png)
我有一个本地/内部 Squid 代理设置,用于通过需要身份验证的父 HTTP 代理发出所有 HTTP 请求。我想要做的是将 HTTP 资源保存在本地 Squid 缓存中,以便后续请求从那里提供,而不是从父级重新下载。
我的配置看起来像这样:
nonhierarchical_direct off
http_port 10101
acl port_10101 localport 10101
always_direct deny port_10101
never_direct allow port_10101
cache_peer parent.example.com parent 8080 0 no-query proxy-only login=user:pass connect-fail-limit=99999999 name=default_proxy
cache_peer_access default_proxy allow port_10101
cache_peer_access default_proxy deny !port_10101
never_direct allow all
http_access allow all
我尝试过删除,proxy-only
但是没有什么作用。
这是适用于 Squid 3.5 的。
答案1
我认为您需要检查父代理返回的标头。通常,需要身份验证的内容会被标记为不可缓存。请参阅RFC2616“什么是可缓存的”一节。如果父级指示响应不可缓存,则根据 RFC 合规性,squid 应该被要求遵守这一点。