Squid 代理 TCP_Miss 始终存在,根本不缓存

Squid 代理 TCP_Miss 始终存在,根本不缓存

sudo apt-get install squid在 Ubuntu 上安装了 Squid Proxy 作为正向代理

我没有修改 squid.conf 中的任何默认设置,http_access deny all除了http_access allow all

现在我已经使用此命令# tail -f /var/log/squid3/access.log实时监控 squid 访问日志,我发现尽管网站类型多种多样,静态和动态,有大量图像和静态文件,但结果仍然总是一样的。

大量的 TCP_Miss 和仅仅两三个 TCP_Hits 我还检查了 Squid 的 spool 的大小,它只有 4.0K

所以我现在知道 Squid 没有缓存任何东西。有谁能帮我解决这个问题吗?当我搜索“Squid TCP_Miss”和“Squid 没有缓存”时,我几乎读完了谷歌上的每一篇文章,但这些都对我不起作用。

谢谢

答案1

遇到了同样的问题,但解决了。在 squid 配置文件的末尾,您有刷新模式 -refresh_pattern以及一些规则(解释这里)。默认的捕获所有模式是带有“ .”的模式。它遵循客户端刷新,因此无法从缓存中提供内容。我在带有“ .”的规则上方添加了此规则,现在可以缓存.png文件 120 秒。

refresh_pattern .png            120     50%     86400 ignore-reload

refresh_pattern .               0       20%     4320

答案2

Squid(以及那里的其他代理服务器)仅缓存静态内容。不缓存动态网页。因此,您将看到 php/asp 等页面出现大量 TCP_MISS。此外,如果网站管理员设置了 no_cache 指令,甚至连 JPG 文件都不会被缓存。

相关内容