上一篇 下一篇 分享链接 返回 返回顶部

如何在CentOS服务器上安装Nginx的Varnish

发布人:Minchunlin 发布时间:2021-03-03 08:55 阅读量:1145

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。

目录结构
全文