如何在CentOS服务器上安装Nginx的Varnish
Varnish Cache(也称为Varnish)是一种开放源代码的高性能HTTP加速器,旨在加速Web服务器。在上一篇文章中,我们解释了如何在CentOS 7和CentOS 8上为Apache设置Varnish Cache。
在本文中,我们将向您展示如何安装和使用Varnish Cache作为CentOS 7中Nginx HTTP服务器的前端。本文步骤也可以在RHEL 7上使用。
前提要求:安装了Apache的CentOS 7服务器,且有静态IP。
步骤1:在CentOS 7上安装Nginx Web Server
首先,使用YUM软件包管理器从默认的CentOS软件存储库中安装Nginx HTTP服务器,如下所示。
# yum install nginx

安装完成后,暂时启动Nginx服务,使其在系统启动时自动启动。
# systemctl start nginx
# systemctl enable nginx
# systemctl status nginx

现在使用下面的命令修改系统防火墙规则,允许80端口的入站数据包。
# firewall-cmd --zone=public --permanent --add-port=80/tcp。
# firewall-cmd --reload
# firewall-cmd --zone=public --permanent --add-port=8080/tcp。
# firewall-cmd --reload
步骤2:在CentOS 7上安装Varnish Cache。
现在有最新版本的Varnish Cache 6的预编译RPM包(也就是写文章时的6.5),因此你需要添加Varnish Cache官方仓库。
在此之前,你需要启用EPEL仓库来安装几个依赖包,如图所示。
# yum install -y epel-release
接下来,安装 pygpgme,一个用于处理 GPG 签名的软件包,以及 yum-utils,一个以各种方式扩展 yum 本机功能的实用工具集。
# yum install pygpgme yum-utils
现在创建一个名为/etc/yum.repos.d/varnishcache_varnish5.repo的文件,其中包含以下的仓库配置。
# vi /etc/yum.repos.d/varnishcache_varnish65.repo。
重要:请确保在下面的配置中用你的Linux发行版和版本替换el和7。

现在运行下面的命令来更新你的本地yum缓存,并安装varnish缓存包(安装包的时候不要忘记输入y或yes来接受GPG键)。
# yum -q makecache -y --disablerepo='*' --enablerepo='varnishcache_varnish65' 。
# yum install varnish

安装Varnish Cache后,主执行文件将被安装为/usr/sbin/varnishd,varnish配置文件位于/etc/varnish/中。
/etc/varnish/default.vcl - 这是主要的varnish配置文件,它是使用vanish配置语言(VCL)编写的。
现在启动varnish服务,让它在系统启动时自动启动,并验证它的状态,确保它已经启动并运行,如下所示。
# systemctl start varnish
# systemctl enable varnish
# systemctl status varnish

你可以通过查看Varnish可执行文件的位置和安装在你系统上的版本来确认Varnish的安装是否成功。
$ which varnishd
$ varnishd -V
步骤3:配置Nginx与Varnish缓存一起工作。
在这一步,你需要配置Nginx与Varnish Cache一起工作。默认情况下,Nginx监听端口为80,你应该将Nginx默认端口改为8080,这样它就可以在Varnish缓存后面运行了。
打开Nginx配置文件/etc/nginx/nginx.conf,找到listen 80这一行,将其改为listen 8080,如下所示。
# vi /etc/nginx/nginx.conf

注意:对于你想通过Varnish提供服务的网站,应该在所有的服务器块配置文件中(通常是在/etc/nginx/conf.d/下创建)完成这项工作。
接下来,打开varnish服务配置文件,找到指定Varnish监听端口的参数ExecStart,并将其值从6081改为80。
# systemctl edit --full varnish
如下图中箭头所示
ExecStart=/usr/sbin/varnishd -a :80 -f /etc/varnish/default.vcl -s malloc,256m

接下来,在/etc/varnish/default.vcl配置文件中设置Nginx作为Varnish代理的后端服务器。
# vi /etc/varnish/default.vcl
找到后台部分,定义主机IP和端口。下面是默认的后台配置,将其设置为指向你的实际内容服务器。
backend default {
.host = "127.0.0.1";
.port = "8080";
}
14. 在完成所有必要的配置后,重启Nginx HTTPD和Varnish缓存以实现上述更改。
# systemctl daemon-reload
# systemctl restart nginx
# systemctl restart varnish
步骤4:在Nginx上测试Varnish缓存
最后,使用下面的cURL命令测试是否启用了Varnish缓存并与Nginx服务一起工作,以查看HTTP头。
# curl -I http://localhost

在本教程中,我们讲解了如何在CentOS 7上为Nginx HTTP服务器设置Varnish Cache。