本指南介绍了如何在CentOS 7系统Apache环境中安装VarnieCache 6.0。Varnish缓存是一种开源缓存的HTTP反向代理,可以帮助提高Web服务器的整体性能。本教程使用没有SELinux的CentOS 7系统上面进行。如果您需要禁用SELinux,可以自己设置一下。
先决条件
1、CentOS 7x64系统环境
2、非root用户
配置防火墙
如果使用FireWallD,请修改防火墙规则以允许80端口通过:
$ sudo firewall-cmd --zone=public --permanent --add-service=http
$ sudo firewall-cmd --reload
安装Apache
安装Apache HTTP服务器。
$ sudo yum install -y httpd
将apache端口设置为8080。编辑Httpd.conf配置文件:
$ sudo nano /etc/httpd/conf/httpd.conf
换行“80端口“到”8080端口“,然后保存并关闭文件。完成后,行应该像这样。
Listen 8080
启动Apache服务就,命令如下:
$ sudo systemctl start httpd.service
$ sudo systemctl enable httpd.service
测试Apache配置
创建一个测试文件,命令如下:
$ sudo touch /var/www/html/test.html
使用curl命令测试服务器8080端口,这主要是验证Apache的配置是否正确,显示的信息如下:
$ curl -I http://localhost:8080/test.html
HTTP/1.1 200 OK
Date: Fri, 10 Jul 2020 13:10:04 GMT
Server: Apache/2.4.6 (CentOS)
Last-Modified: Fri, 10 Jul 2020 13:09:56 GMT
ETag: "0-5aa160eb192a8"
Accept-Ranges: bytes
Content-Type: text/html; charset=UTF-8
安装Varnish
添加Epel存储库。
$ sudo yum install -y epel-release
安装依赖程序包。
$ sudo yum install -y pygpgme yum-utils
添加VarnixCache存储库。编辑/etc/yum.Storage.d/varnish60lts.repo文件:
$ sudo nano /etc/yum.repos.d/varnish60lts.repo
粘贴以下内容,然后保存并关闭文件。
[varnish60lts]
name=varnishcache_varnish60lts
baseurl=https://packagecloud.io/varnishcache/varnish60lts/el/7/x86_64
repo_gpgcheck=1
gpgcheck=0
enabled=1
gpgkey=https://packagecloud.io/varnishcache/varnish60lts/gpgkey
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300
使用yum更新Varnish Cache,命令如下:
$ sudo yum -q makecache -y --disablerepo='*' --enablerepo='varnish60lts'
安装Varnish。
$ sudo yum install -y varnish
确认已安装Varnish以及正确的版本。
$ sudo varnishd -V
varnishd (varnish-6.0.6 revision 29a1a8243dbef3d973aec28dc90403188c1dc8e7)
Copyright (c) 2006 Verdens Gang AS
Copyright (c) 2006-2019 Varnish Software AS
在系统启动时启用Varnish,命令如下:
$ sudo systemctl enable --now varnish
从默认的6081开始,在端口80处配置Varnish以便侦听。使用nano编辑器编辑Varnish.service。
$ sudo nano /usr/lib/systemd/system/varnish.service
更改以ExecStart开头的6081端口为80端口,然后保存并关闭文件,完成之后应该如下:
ExecStart=/usr/sbin/varnishd -a :80 -f /etc/varnish/default.vcl -s malloc,256m
重新启动varnish服务。
$ sudo systemctl daemon-reload
$ sudo systemctl restart varnish
测试安装结果
使用curl测试服务器配置,请执行以下操作。
$ curl -I http://localhost/test.html
输出应该像下面这样,也就是头部出现X-Varnish: 2 和Via: 1.1 varnish (Varnish/6.0)的字样:
HTTP/1.1 200 OK
Date: Thu, 09 Jul 2020 18:46:00 GMT
Server: Apache/2.4.6 (CentOS)
Last-Modified: Thu, 09 Jul 2020 18:45:53 GMT
ETag: "0-5aa06a2507662"
Content-Length: 0
Content-Type: text/html; charset=UTF-8
X-Varnish: 2
Age: 0
Via: 1.1 varnish (Varnish/6.0)
Accept-Ranges: bytes
Connection: keep-alive
从本地电脑进行测试,将下面IP地址替换成你自己的,然后验证varnish头部信息是否出现。
linux系统命令如下:
$ curl -I http://192.0.2.123/test.html
Windows PowerShell命令如下:
PS> curl -Uri http://192.0.2.123/test.html
故障排除
1、检查端口测试:
使用ss工具,用于验证哪些进程正在侦听哪个端口,结果如下:
# ss -lnpt | grep 80
LISTEN 0 128 *:80 *:* users:(("cache-main",pid=2253,fd=3),("varnishd",pid=2243,fd=3))
LISTEN 0 128 [::]:80 [::]:* users:(("cache-main",pid=2253,fd=5),("varnishd",pid=2243,fd=5))
LISTEN 0 128 [::]:8080 [::]:* users:(("httpd",pid=1373,fd=4),("httpd",pid=1372,fd=4),("httpd",pid=1371,fd=4),("httpd",pid=1370,fd=4),("httpd",pid=1369,fd=4),("httpd",pid=1368,fd=4))
确保varnishd占用的是端口80和httpd占用的是8080端口。
2、使用curl进行测试:
$ curl -I http://localhost/test.html
HTTP/1.1 503 Backend fetch failed
Date: Fri, 10 Jul 2020 14:01:13 GMT
Server: Varnish
Content-Type: text/html; charset=utf-8
Retry-After: 5
X-Varnish: 2
Age: 0
Via: 1.1 varnish (Varnish/6.0)
Content-Length: 278
Connection: keep-alive
如果curl返回“HTTP/1.1 503错误”,请检查/etc/varnish/default.vcl文件。
$ nano /etc/varnish/default.vcl
确保后端默认部分指向端口8080处的Apache,如下:
backend default {
.host = "127.0.0.1";
.port = "8080";
}
以上就是CentOS 7关于Apache安装Varnish Cache简单方法介绍,设置过程仅供大家参考。另外,关于防火墙设置以及其它关于Linux命令的相关知识,可以访问惠主机www.idccoupon.com,欢迎一起讨论学习!