捣鼓 Varnish 这玩意儿,我也算是折腾了一阵子,今天就来聊聊我是怎么把它弄起来跑起来的。
准备工作和找安装包
最开始嘛肯定是要把 Varnish 的安装包搞到手。我的服务器是 CentOS 7 的,所以直接用 yum 来装理论上最方便。但是直接 `yum install varnish` 好像不行,或者版本太老。我就去 Varnish 官网上找了下,果然有提供针对 CentOS 7 的 yum 源。
这步不难,就是创建一个 repo 文件放到 `/etc/*.d/` 目录里,里面写上官方给的源地址。具体内容我就不贴了,反正官网上复制粘贴就行。
加好源之后,先 `yum update` 刷新一下缓存,确保系统能找到新的包。
开始安装
源的问题解决了,接下来就简单了。直接在终端敲:
yum install varnish
回车之后,系统就开始自己下载 Varnish 和它需要的一堆依赖包。看着屏幕上滚动过去的文件名,感觉还挺多的。不过好在 yum 自己会处理这些依赖关系,不用我一个个去操心。等了没多久,提示安装成功。
装完后,习惯性地检查下版本:
varnishd -V
看到输出了版本号,心里就有底了,说明确实装上了。
配置 Varnish
装好只是第一步,关键还得配置,让 Varnish 知道去哪里抓取真正的网页内容。Varnish 的核心配置文件是 VCL 文件,默认路径一般在 /etc/varnish/*
。
我就用 `vi` 打开了这个文件。里面内容看着有点像编程语言,但核心要改的地方不多。主要是找到 `backend default` 这个段落。
.host
这里要改成我后端 Web 服务器的 IP 地址。比如我后端服务器地址是 192.168.1.100。.port
这里改成后端 Web 服务器监听的端口,一般是 80 或者其他自定义端口,比如 8080。
我就把这两项改成了我实际的后端服务器地址和端口。其他的配置暂时没动,想着先让它基本跑起来再说。
还得看看 Varnish 自己监听哪个端口。这个通常在 systemd 的服务文件里或者启动参数里配置。我看了下,默认是监听在 6081 端口。这个端口就是我们之后要访问的地址。
启动并检查
配置改完了,保存退出。接下来就是启动 Varnish 服务了。CentOS 7 用的是 systemd 管理服务,所以命令是:
systemctl start varnish
启动之后,最好检查下状态,确保它正常运行了:
systemctl status varnish
看到绿色的 "active (running)" 字样,就表示服务启动成功了。如果报错,那就得去检查日志了,一般在 `/var/log/varnish/` 目录下找找线索。
服务启动了,一步就是验证它是不是真的在工作,并且能缓存内容。我用了 `curl` 命令来测试:
curl -I http://你的服务器IP:6081
注意,这里的 IP 是 Varnish 服务器的 IP,端口是 Varnish 监听的 6081 端口。-I
参数表示只看 HTTP 响应头。
第一次请求,看返回的头信息里面有没有 Varnish 相关的标记,比如 `X-Varnish` 或者 `Via: 1.1 varnish` 之类的。同时注意看 `Age` 这个头,第一次请求应该是 0。
然后,我紧接着又执行了一次同样的 `curl` 命令。这回再看返回头,如果 `Age` 的值大于 0 了,那就说明 Varnish 成功命中了缓存,直接返回了缓存内容,没有再去麻烦后端的 Web 服务器。这就对了!
后续
基本上,到这一步,Varnish 就算是跑起来了,并且能够对后端内容进行基本的缓存。后面还有很多 VCL 的高级配置可以玩,比如怎么更精细地控制缓存策略、处理 Cookie、对不同 URL 做不同处理等等。但作为初次实践,能让它正常工作起来,缓存生效,就算完成任务了。以后有需要再慢慢深入研究 VCL 的写法和其他高级功能。
整个过程下来,感觉还主要是配置 VCL 文件需要点耐心,理解它的逻辑。其他的安装启动步骤都比较常规。
还没有评论,来说两句吧...