在CentOS 8上如何为Apache安装Varnish缓存
Varnish缓存是一个免费的开源、现代和高性能web应用程序加速器。它是一种快速反向HTTP代理,通过将web内容存储在服务器内存(在缓存中)来缓存内容,从而提高web服务器的性能。它被配置为在Apache (HTTPD) webserver等源服务器前运行。
当客户端请求内容时,Varnish接受HTTP请求,将请求发送到源服务器,缓存返回的对象,并响应客户端请求。下一次客户端请求相同的内容时,Varnish将从缓存中为其提供服务。通过这种方式,它减少了请求的响应时间和网络带宽消耗。 Varnish还可以用作HTTP请求路由器、web应用程序防火墙、负载平衡器等等。
如何在CentOS/RHEL 8上安装Apache Web服务器
安装apache服务器
# dnf update # dnf install httpd
管理apache服务
### 停止apache web服务 # systemctl stop httpd ### 启动apache web服务 # systemctl start httpd ### 设置apache web服务开机自启动 # systemctl enable httpd ### 查看apache web服务状态 # systemctl status httpd
为apache 配置防火墙
开放80端口
# firewall-cmd --zone=public --permanent --add-service=http # firewall-cmd --reload
如何在CentOS/RHEL 8上安装Varnish缓存6.4
# dnf module install varnish
查看Varnish 的版本
# varnishd -V
Varnish 的配置文件
程序主目录: /usr/sbin/varnishd
配置文件目录: /etc/varnish
配置文件 /etc/varnish/default.vcl: 主varnish配置文件 , 使用VCL语言编写。
配置文件 /etc/varnish/secret:varnish 密钥文件
启动varnish服务,设置开机自启动
# systemctl start varnish # systemctl enable varnish # systemctl status varnish
配置apache服务器,和Varnish 搭配使用
修改文件 /etc/httpd/conf/httpd.conf
将apache 的监听端口改为8080
Listen 8080
每个需要使用Varnish提供缓存的虚拟主机, 都需要修改相应的监听端口。
例如:
/etc/httpd/conf.d/mytheitroad.tech.conf:
<VirtualHost *:8080> DocumentRoot "/var/www/html/mytheitroad.tech/" ServerName www.mytheitroad.tech # Other directives here </VirtualHost>
删除默认的欢迎页面:
# rm /etc/httpd/conf.d/welcome.conf
测试配置是否正确,并重启httpd服务,使配置生效
# httpd -t # systemctl restart httpd
配置Varnish,将其作为httpd的前端
# systemctl edit --full varnish
将端口6081改成80
ExecStart=/usr/sbin/varnishd -a :80 -f /etc/varnish/default.vcl -s malloc,256m
配置Varnish后端服务器
修改 /etc/varnish/default.vcl,
可以将默认的 default改成 server1, 端口设置为 apache服务器监听的端口。
如果apache和Varnish在不同的机器上,需要将 .host设置为 apache所在服务器的IP地址:
backend server1 { .host = "127.0.0.1"; .port = "8080"; }
重启varnish,使配置生效
# systemctl daemon-reload # systemctl restart varnish
测试
查看监听端口是否正确:
# ss -tpln
使用浏览器打开网址, http://服务器ip
, 检查页面是否通过Varnish缓存.