Varnish Cache (通常称为Varnish )是一种开放源代码的反向代理HTTP加速器,旨在加速Web服务器。 它适用于过度使用的API端点,也适用于提供大量内容和体验高流量的动态站点。
它基本上有助于降低CPU负载; 支持Web服务器上的负载平衡,并使Web浏览器能够通过将缓存存储在RAM中来快速加载站点。 许多大公司使用它,包括Facebook,Twitter和维基百科只是提到一些。
要求
在本文中,我将解释如何安装和使用Varnish Cache 5.1作为CentOS 7中 Apache Web服务器的前端(也可在RHEL7上使用 )。
第1步:在CentOS 7上安装Apache Web Server
1.首先使用YUM包管理器从默认的CentOS软件仓库安装Apache HTTP服务器,如下所示。
# yum install httpd
在CentOS 7上安装Apache
2.一旦Apache安装,暂时启动它,并使其在系统启动时自动启动。
# systemctl start httpd # systemctl enable httpd # systemctl status httpd
启动和启用Apache
3.下一个更新系统防火墙规则允许端口80上的入站数据包使用以下命令。
# firewall-cmd --zone=public --permanent --add-service=http # firewall-cmd --reload
在防火墙上打开Apache端口
第3步:在CentOS 7上安装Varnish缓存
4.不幸的是,没有预先编译的RPM软件包,用于最新版本的Varnish Cache 5 (即写入时为5.1.2 ),因此您需要从源代码包中构建它。
在从源编译之前,首先需要启用EPEL存储库来安装多个依赖项包,如图所示。
# yum install -y epel-release # yum install autoconf automake jemalloc-devel libedit-devel libtool ncurses-devel pcre-devel pkgconfig python-docutils python-sphinx graphviz -y
安装Epel和依赖包
5. 下载下载Varnish并从源代码编译,如图所示。
# wget https://repo.varnish-cache.org/source/varnish-5.1.2.tar.gz # tar -zxvf varnish-5.1.2.tar.gz # cd varnish-5.1.2 # sh autogen.sh # sh configure # make # make install # ldconfig
6.从源代码编译Varnish Cache后,主可执行文件将被安装为/ usr / local / sbin / varnishd 。
您可以使用以下命令确认Varnish安装成功。
# /usr/local/sbin/varnishd -V
检查Varnish版本
第3步:配置Apache使用Varnish缓存
7.现在配置Apache与Varnish Cache配合使用。 默认情况下,Apache监听端口80 ,您需要将默认HTTPD端口更改为8080 - 这将确保HTTPD在Varnish缓存之后运行。
您可以使用sed命令将端口80更改为8080 ,如图所示。
# sed -i "s/Listen 80/Listen 8080/" /etc/httpd/conf/httpd.conf
然后保存并关闭文件。
8.执行所有必要的配置后,重新启动HTTPD和Varnish缓存以实现上述更改。
# systemctl restart httpd
9.现在通过键入以下命令手动启动varnish守护程序,而不是调用service varnish start ,因为某些配置不在源安装中。
# /usr/local/sbin/varnishd -a :80 -b localhost:8080
启动Varnish守护进程
第4步:测试Apache上的Varnish缓存
10.最后,测试是否启用了Varnish,并使用下面的cURL命令使用HTTPD服务工作,可以使用它来查看HTTP头。
# curl -I http://localhost
在Apache上测试Varnish缓存
有关更多信息,请查看Varnish Cache Github Repository: https : //github.com/varnishcache/varnish-cache
在本教程中,我们介绍了如何在CentOS 7上为Apache HTTP服务器设置Varnish Cache 5.0代理。如果您有任何疑问或其他想法可以共享,请使用下面的反馈表单来回复。