如何知道 Squid Proxy 是否正确执行缓存

Lui*_*ado 12 squid

我想测试连接到 Squid 服务器的客户端是否实际使用缓存数据,而不是直接访问互联网并检索数据。我已将所有客户端浏览器配置为从 Squid 服务器(即 10.42.0.1:3128)读取 Server:Port。那么我怎么知道他们是从缓存还是从 Internet 检索信息。

我问是因为一个快速的“测试”在加载几个有很多图像的页面时给了我相同的速度。相同的图像,而不是每次访问都会改变的广告。

我可以使用哪些方法来检查他们是否正在使用缓存?

我运行了以下命令:sudo tail -f /var/log/squid3/access.log并得到几行继续滚动:

1374553166.136    929 185.168.101.131 TCP_MISS/200 28198 GET http://www.amazon.de/gp/offer-listing/B000NOIW62/ref=sr_1_1_olp? - DIRECT/178.236.7.219 text/html
Run Code Online (Sandbox Code Playgroud)

他们有一个TCP_MISS/200,最后有一个DIRECT,如上面的例子。这是在我关闭 LAN 中的所有计算机时发生的。当我尝试使用一个时,我得到了以下内容sudo tail -f /var/log/squid3/access.log | grep HIT

1374553387.488      0 10.42.0.14 TCP_IMS_HIT/304 278 GET http://g-ecx.images-amazon.com/images/G/01/da/creatives/sn130.png - NONE/- image/png
Run Code Online (Sandbox Code Playgroud)

所以它显示为TCP_IMS_HIT/304,最后它显示一个NONE

那么 TCP_MISS、DIRECT、TCP_IMS_HIT 和 NONE 是什么意思呢?

缓存工作吗?

Beo*_*e42 15

在终端中,在运行 squid 的服务器上,运行命令

tail -f /var/log/squid3/access.log
Run Code Online (Sandbox Code Playgroud)

然后在用户访问网页时观看它。如果很多行在他们点击某些东西时向上滚动屏幕,那么他们正在使用代理服务器。如果没有找到 squid 日志文件,请在 /etc/squid 中查看日志文件的位置。

要退出上述命令,请按 ctrl+c

要查看它是否真的在缓存内容并有用,应该有一些行说它是 HIT。要查看日志文件内容的完整描述,请参阅 squid wiki。请注意,由于单个用户的 Web 浏览器已经在本地缓存了内容,因此缓存 HIT 不会像您希望的那样频繁。当多个用户在从缓存中删除该信息之前请求相同的页面时,您将获得最多的点击量。

例如,当所有员工发出一封电子邮件时说“检查这个网站......”

  • TCP_MISS/200 意味着请求的文档不在缓存中,但它可以从 Web 服务器获取它。最后的直接表示该文件是从网络服务器获取的。
  • TCP_IMS_HIT/304 表示客户端询问文件是否已更改,而squid 在Web 服务器上检查其日期/时间并发现它没有更改,因此它从其本地缓存中将文件的副本提供给客户端。

所以是的,你的鱿鱼正在被使用并作为缓存工作。