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

如何在CentOS服务器上为Apache设置Varnish

发布人:Minchunlin 发布时间:2021-03-03 08:40 阅读量:1251

Varnish Cache(通常称为Varnish)是一种开源的,流行的反向代理HTTP加速器,旨在加速Web服务器。它专为过度使用的API端点而设计,也为服务大量内容并经历高流量的动态站点而设计。

它有助于降低CPU负载;支持网络服务器的负载平衡,并使网络浏览器能够快速加载网站,因为将缓存存储在RAM中。许多大公司都在使用它。

在本文中,我将讲解如何安装和使用Varnish Cache 6.5作为CentOS 7中的Apache Web服务器的前端(也可在RHEL 7上使用)。

步骤1:在CentOS 7上安装Apache Web Server

首先,使用YUM软件包管理器从默认的CentOS软件存储库中安装Apache HTTP服务器,如下所示。

# yum install httpd

安装好Apache后,启动它,并使其在系统启动时自动启动。

# systemctl start httpd

# systemctl enable httpd

# systemctl status httpd

接下来使用下面的命令更新系统防火墙规则,允许80端口的入站数据包。

# firewall-cmd --zone=public --permanent --add-service=http

# 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_varnish65.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 

8. 安装Varnish Cache后,主执行文件将被安装为/usr/sbin/varnishd,varnish配置文件位于/etc/varnish/中。

/etc/varnish/default.vcl - 这是主要的varnish配置文件,它是使用vanish配置语言(VCL)编写的。

9. 现在启动varnish服务,使其在系统启动时自动启动,并验证它的状态,以确保它已启动并运行,如下所示。

# systemctl start varnish

# systemctl enable varnish

# systemctl status varnish

10. 你可以通过查看Varnish可执行文件的位置和安装在你系统上的版本来确认Varnish的安装是否成功。

$ which varnishd

$ varnishd -V

第3步:配置Apache与Varnish缓存一起工作。

11. 现在配置Apache与Varnish Cache一起工作。默认情况下,Apache监听端口为80,你需要将默认的HTTPD端口改为8080--这将确保HTTPD运行在Varnish缓存后面。

你可以使用sed命令将80端口改为8080,如下所示。

# sed -i "s/Listen 80/Listen 8080/" /etc/httpd/conf/httpd.conf

注意:同时,你需要为你想通过Varnish服务的每个网站更改虚拟主机配置的端口。下面是我们测试网站的配置(/etc/httpd/conf.d/a5idc.lan.conf)。

12. 接下来,打开varnish systemd配置文件,找到参数ExecStart,指定Varnish监听的端口,并将其值从6081改为80,如截图所示。

# systemctl edit --full  varnish

配置完成后应该是这样的。

ExecStart=/usr/sbin/varnishd -a :80 -f /etc/varnish/default.vcl -s malloc,256m

接下来,在/etc/varnish/default.vcl配置文件中设置Apache作为Varnish代理的后端服务器。

# vi /etc/varnish/default.vcl 

找到后台部分,定义主机IP和端口。下面是默认的后台配置,将其设置为指向你的实际内容服务器。

backend default {

    .host = "127.0.0.1";

    .port = "8080";

}

如果你的后台服务器运行在不同的服务器上,地址为10.42.1.10,那么主机参数应该指向这个IP地址。

backend server1 {

    .host = "10.42.1.10";

    .port = "8080";

}

在完成所有必要的配置后,重启HTTPD和Varnish缓存以实现上述更改。

# systemctl daemon-reload

# systemctl restart httpd

# systemctl restart varnish

步骤4:在Apache上测试Varnish缓存

15. 最后,使用下面的cURL命令测试一下Varnish是否启用了HTTPD服务,可以用来查看HTTP头。

# curl -I http://localhost

在本教程中,我们讲解了如何在CentOS 7上为Apache HTTP服务器设置Varnish Cache 6.5代理,希望对您有所帮助。

目录结构
全文