如何在CentOS/RHEL 8上安装Nginx的Varnish缓存6
Varnish缓存(通常称为Varnish)是一个开源的、强大的、快速的反向代理HTTP加速器,具有现代的体系结构和灵活的配置语言。
Varnish充当Nginx和客户端之间的中间人,但会带来一些性能上的好处。它的主要目的是通过充当缓存引擎使应用程序加载更快。它接收来自客户端的请求,并将其转发到后端,以缓存所请求的内容(将文件和文件片段存储在内存中)。然后,将来对完全相似内容的所有请求都将从缓存中提供服务。
这使的web应用程序加载更快,并且间接地提高了web服务器的总体性能,因为Varnish将提供来自内存的内容,而不是Nginx处理来自存储磁盘的文件。除了缓存之外,Varnish还有其他几个用法,包括HTTP请求路由器、负载均衡器、web应用程序防火墙等等。
varnish使用高度可扩展内置varnish配置语言(VCL)进行配置,VCL使能够编写关于应该如何处理传入请求的策略。可以使用它来构建定制的解决方案、规则和模块。
在CentOS/RHEL 8上安装Nginx Web服务器
CentOS/RHEL 8附带了最新版本的Nginx web服务器软件,因此我们将使用以下dnf命令从默认存储库安装它。
# dnf update # dnf install nginx
安装Nginx之后,需要使用以下systemctl命令启动、启用和验证状态。
# systemctl start nginx # systemctl enable nginx # systemctl status nginx
使用下面的ss命令检查Nginx TCP套接字,它默认在端口80上运行。
# ss -tpln
如果系统上运行了防火墙,请确保更新防火墙规则以允许向web服务器发送请求。
# firewall-cmd --zone=public --permanent --add-service=http # firewall-cmd --zone=public --permanent --add-service=https # firewall-cmd --reload
在CentOS/RHEL 8上安装Varnish缓存6
CentOS/RHEL 8在默认情况下提供了Varnish缓存DNF模块,该模块包含Varnish 6.0 LTS(长期支持)版本。
安装
# dnf module install varnish
确认系统上安装的Varnish版本。
# varnishd -V
Varnish的文件
主程序:/usr/sbin/varnishd
配置文件目录: /etc/varnish/
主配置文件: /etc/varnish/default.vcl
密码文件:/etc/varnish/secret
启动Varnish服务
启动Varnish服务,并设置自动启动,然后查看它的状态。
# systemctl start varnish # systemctl enable varnish # systemctl status varnish
配置nginx
修改nginx端口
默认情况下Nginx监听端口80,我们需要将其修改,把80端口留个varnish
编辑 /etc/nginx/nginx.conf, 将 listen 80改成 listen 8080
如果是子站点,配置文件可能在 **/etc/nginx/conf.d/**中
然后重启nginx使配置生效
# nginx -t ## 检查nginx配置文件是否正确 # systemctl restart nginx
设置varnish监听端口
执行下面命令,打开Varnish服务配置文件
# systemctl edit --full varnish
找打ExecStart一行,将端口改成80
ExecStart=/usr/sbin/varnishd -a :80 -f /etc/varnish/default.vcl -s malloc,256m
设置Varnish从中获取内容的后端服务器
# vi /etc/varnish/default.vcl backend server1 { .host = "192.168.1.133"; .port = "8080"; }
重新启动Varnish服务
# systemctl daemon-reload # systemctl restart varnish
测试Nginx Varnish缓存设置
使用浏览器打开站点
Varnish常用命令
varnishadm
varnishadm用于控制运行的Varnish实例的实用程序。它建立到varnishd的CLI连接。例如,可以使用它来列出配置后端
# varnishadm varnish> backend.list
varnishlog
varnishlog实用程序提供对特定于请求的数据的访问。它提供关于特定客户端和请求的信息。
# varnishlog
varnishstat
varnishstat也称为varnish统计信息,它提供了对内存统计信息的访问,例如缓存命中和丢失、有关存储的信息、创建的线程、删除的对象。
# varnishstat
varnishtop
varnishtop实用程序读取共享内存日志
# varnishtop
varnishhist
varnishhist (varnish history)实用程序解析varnish日志,并输出一个连续更新的直方图,显示最后n个请求的处理分布情况。
# varnishhist