从客户端收到HTTP请求后,它将请求转发到后端Web服务器。 Web服务器响应后,Varnish将内容缓存在内存中,并将响应传递给客户端。当客户端请求相同的内容时,Varnish将从缓存提升应用程序响应中提供该内容。如果无法提供缓存中的内容,则将请求转发到后端,然后将响应缓存并交付给客户端。
Varnish具有VCL(Varnish配置语言,一种灵活的域特定语言),用于配置请求的处理方式以及其他功能,Varnish模块(VMODS)是Varnish Cache的扩展。
在安全方面,Varnish Cache支持通过VMODS进行日志记录,请求检查以及限制,身份验证和授权,但缺少对SSL/TLS的原生支持。您可以使用Hitch或NGINX等SSL/TLS代理为Varnish Cache启用HTTPS。
您还可以将Varnish Cache用作Web应用程序防火墙,DDoS攻击防御程序,热链接保护程序,负载平衡器,集成点,单点登录网关,身份验证和授权策略机制,用于不稳定后端的快速修复程序以及HTTP请求路由器。
相关:
8、Squid缓存代理
Squid是另一个针对Linux的免费,开源,出色且广泛使用的代理和缓存解决方案。它是功能丰富的Web代理缓存服务器软件,可为流行的网络协议(包括HTTP,HTTPS和FTP)提供代理和缓存服务。它还可以在其他UNIX平台和Windows上运行。
就像Varnish Cache一样,它接收来自客户端的请求并将它们传递到指定的后端服务器。后端服务器响应时,会将内容的副本存储在缓存中,然后将其传递给客户端。将来对相同内容的请求将从缓存中得到处理,从而将内容更快地传递到客户端。因此,它可以优化客户端和服务器之间的数据流以提高性能,并缓存常用内容以减少网络流量并节省带宽。
Squid具有一些功能,例如通过代理服务器的相互通信的层次结构分配负载,生成有关Web使用模式的数据(例如,有关访问量最大的站点的统计信息),使您能够分析,捕获,阻止,替换或修改代理的消息。
它还支持安全功能,例如丰富的访问控制,授权和身份验证,SSL/TLS支持以及活动日志记录。
相关:
如何在 Ubuntu 18.04 上安装和配置 Squid 代理 https://www.linuxidc.com/Linux/2019-08/159960.htm
9、NGINX
NGINX(发音为Engine-X)是一种开放源代码,高性能,功能齐全且非常流行的整合解决方案,用于设置Web基础结构。它是HTTP服务器,反向代理服务器,邮件代理服务器和通用TCP/UDP代理服务器。
NGINX提供基本的缓存功能,其中缓存的内容存储在磁盘上的持久性缓存中。 NGINX中有关内容缓存的有趣之处在于,当它无法从源服务器获取新鲜内容时,可以对其进行配置以从其缓存中传递陈旧的内容。
NGINX提供了多种安全功能来保护您的Web系统,包括SSL终止,使用HTTP基本身份验证限制访问,基于子请求结果的身份验证,JWT身份验证,限制对代理HTTP资源的访问,按地理位置限制的访问,以及更多。
它通常被部署为应用程序堆栈中的反向代理,负载平衡器,SSL终结器/安全网关,应用程序加速器/内容缓存和API网关。它还用于流媒体。
开发人员和管理员必须掌握的25个Nginx命令 见 https://www.linuxidc.com/search.aspx?where=nkey&keyword=65544
10、Apache Traffic Server
最后但也重要的一点是,我们有Apache Traffic Server,这是一种开源,快速,可扩展且可扩展的缓存代理服务器,支持HTTP/1.1和HTTP/2.0。它旨在通过为企业,ISP(Internet服务器提供商),骨干网提供商等在网络边缘缓存经常访问的内容来提高网络效率和性能。
它支持HTTP/HTTPS通信的正向和反向代理。它还可以配置为同时以一种或两种模式运行。它具有持久性缓存,插件API;支持ICP(Internet缓存协议),ESI(Edge Side Includes); Keep-Alive等。
在安全性方面,Traffic Server支持控制客户端访问,方法是允许您配置允许使用代理缓存的客户端,客户端与自身之间以及自身与原始服务器之间的连接的SSL终止。它还通过插件支持身份验证和基本授权,记录(接收到的每个请求以及检测到的每个错误)以及进行监视。
Traffic Server可用作Web代理缓存,正向代理,反向代理,透明代理,负载均衡器或在缓存层次结构中使用。
相关:
CentOS 7.4 下 Apache Traffic Server 安装部署 https://www.linuxidc.com/Linux/2020-05/163160.htm
总结