我已经在 Google 上搜索过,也在 StackOverflow 和这里搜索过。但我仍然不能完全理解为什么有人会使用 Squid。
到目前为止,我所能找到的只是它是某种缓存,可以减少您的服务器(即 Apache)的工作量。那么有人能确切解释一下 Squid 的作用吗?更重要的是,我为什么要使用 Squid?
我有一个大型的社交网站,因此也许它有利于提供图像或其他东西,我目前正在运行与 Apache 分开的 lighttpd,只是为了提供图像。
答案1
Squid 是一个网络缓存,可以缓存网络内容,并根据请求快速返回。通过 Squid 处理请求通常比通用网络服务器更快,即使是处理简单文件(例如图像),但它真正擅长的是缓存动态生成的页面,这可能既昂贵又缓慢。因此,它允许您动态构建页面,但允许您快速向请求者提供静态缓存副本。关于缓存时间、缓存哪些页面以及如何使缓存结果无效,有很多配置可供选择。
例如,维基百科使用缓存(squid 和其他)作为内容加速器,这样每次访问页面时,就不需要通过大量的 PHP 从数据库重新生成页面。当页面发生更改时,缓存条目将失效。
答案2
它是开源的,甚至可以与 Windows 兼容。
我还想补充一点,它不仅仅是一个 Web 缓存。squid.conf 文件有大量选项。我们将其作为 Web 过滤器运行(使用免费黑名单),甚至用它来阻止少数机器上的端口。
答案3
除了这里的所有答案之外,Squid 还可用于过滤提供给最终用户的内容。例如,您可以阻止未成年人查看成人网站。
Squid 还可以对下载的文件进行病毒扫描。
是的,非常强大。
答案4
如果你想要一个反向代理通过缓存图片和缓慢生成的页面来加速网络流量,你可能需要看看漆而不是 Squid。它专为反向代理行为而设计,速度快如闪电,而且设置起来相当简单。Squid 被设计为正向代理,而不是反向代理。如果您有一个大型社交网站,您可能还需要考虑使用 CDN 来存储图像和静态内容。互联网 -> CDN -> Varnish -> Apache 集群您还可以使用 Varnish 作为负载均衡器,因为它可以检查节点健康状况。