我已经用 Google 搜索过,搜索过 StackOverflow 和这里。我仍然不能完全理解有人会使用 Squid 或为什么会使用 Squid。
到目前为止,我所能发现的是,它是某种缓存,可以减少您的服务器(即 Apache)必须做的工作。那么有人可以澄清一下 Squid 的作用吗?更重要的是,我为什么要使用 Squid?
我有一个大型社交网站,所以也许它对提供图像或其他东西会有所帮助,我目前正在运行与 Apache 分开的 lighttpd,只是为了提供图像。
我已经用 Google 搜索过,搜索过 StackOverflow 和这里。我仍然不能完全理解有人会使用 Squid 或为什么会使用 Squid。
到目前为止,我所能发现的是,它是某种缓存,可以减少您的服务器(即 Apache)必须做的工作。那么有人可以澄清一下 Squid 的作用吗?更重要的是,我为什么要使用 Squid?
我有一个大型社交网站,所以也许它对提供图像或其他东西会有所帮助,我目前正在运行与 Apache 分开的 lighttpd,只是为了提供图像。
Squid 是一种 Web 缓存,用于缓存 Web 内容,并根据请求快速返回。即使对于简单的文件(例如图像),通过 squid 处理请求通常也比通用 Web 服务器更快,但是对于动态生成的缓存页面,它确实发挥了作用,这可能既昂贵又缓慢。因此,它允许您动态构建页面,但允许您快速向请求者提供静态缓存副本。关于缓存多长时间、缓存哪些页面以及如何使缓存结果无效,有很多配置可能。
例如,Wikipedia 使用缓存(squid 和其他)作为内容加速器,因此页面上的每次点击都不会通过大量 PHP 从数据库中重新生成。当页面改变时,缓存条目无效。
它是开源的,甚至可以与 Windows 一起使用。
我还想补充一点,它不仅仅是一个网络缓存。squid.conf 文件有很多选项。我们将它作为网络过滤器运行(使用免费黑名单),甚至使用它来阻止少数机器上的端口。
除了这里的所有答案,Squid 还可用于过滤提供给最终用户的内容。例如,您可以阻止未成年人浏览成人网站。
Squid 还可以对下载的文件进行病毒扫描。
是的,它真的很强大。
正如 Morven 所指出的,使用 Squid 作为反向代理可以通过缓存必须由 Web 服务器动态构建但实际上很少更改的页面来加速页面交付。
据我所知,这不是Squids的主要目的,而 NGINX可能是一个更好的解决方案,因为它应该是最快的反向代理解决方案。您可能也想调查一下。
如果您希望反向代理通过缓存图像和生成缓慢的页面来加速 Web 流量,您可能需要查看Varnish而不是 Squid。它专为反向代理行为而设计,速度快如闪电,而且设置起来相当简单。Squid 被设计为正向代理而不是反向代理。如果您有一个大型社交网站,您可能还需要考虑为图像和静态内容使用 CDN。Internet -> CDN -> Varnish -> Apache 集群 您也可以使用 Varnish 作为负载均衡器,因为它可以检查节点的健康状况。
我没有使用 Squid 作为反向代理,但是我确实使用了 Pount 和 HAProxy(同时),这是一个很棒的系统,我们使用它来启用负载平衡和高可用性,并且没有使用缓存方面其中。
如果您想了解有关设置的更多信息,请告诉我。
Squid 通常用于将来自外部世界的内容缓存到您的公司网络中。
您不会在托管或内容交付场景中使用它。