一、Varnish概述
Varnish是一款高性能的开源HTTP加速器,可以有效降低web服务器的负载,提升访问速度。当部署上Varnish之后,web请求的处理过程如下:
客户端的请求将首先被Varnish接受。Varnish将分析接收的请求,并将其转发到后端的web服务器上。后端的web服务器对请求进行常规的处理,并将依次将处理结果返回给Varnish。
Varnish的核心功能是将后端web服务器返回的结果缓存起来,并且缓存是放在内存中的,比放在磁盘上快。如果发现后续有相同的请求,Varnish将不会将这个请求转发到web服务器,而是返回缓存中的结果。这将有效的降低web服务器的负载,提升响应速度,并且每秒可以响应更多的请求。
Varnish特点:
1.基于内存缓存,重启后数据将消失
2.通过fork形式打开多进程来做处理,合理的使用所有核来处理相应的请求
Varnish处理缓存的顺序:
接受到请求 –- 分析请求(分析你的URL,分析你的首部) – hash计算 – 查找缓存 – 新鲜度检测 — 访问源 — 缓存 – 建立响应报文 – 响应并记录日志
二、Varnish安装
1.安装varnish时最好用rpm包来安装,需要的软件包如下:
varnish-6.4.0-1.el7.x86_64.rpm
jemalloc-3.6.0-1.el7.x86_64.rpm
2.安装完成后查看varnish的启动文件
vim /usr/lib/systemd/system/varnish.service
将服务端口改为80,指定的配置文件为/etc/varnish/default.vcl
3.更改安全限制文件
vim /etc/security/limits.conf
在文件中进行配置使得系统允许varnish打开指定数量的文件以及内存锁定
4.开启varnish
systemctl start varnish
5.设定后端主机
即访问varnish主机时将访问请求转交给哪台主机
vim /etc/varnish/default.vcl
在30主机上安装打开httpd,并在发布页面写入www.server2.com
6.重启varnish服务
再次访问varnish主机可以看到上述发布页面中的内容
三、Varnish功能—缓存
1.修改配置文件
vim /etc/varnish/default.vcl
设定命中缓存和未命中缓存的提示语
2.重启varnish服务
3.测试(在测试主机40上进行测试)
四、varnish清理缓存的方式
1.清理所有缓存
varnishadm ban req.url "~"/
2.只清理指定页面(index.html)的缓存
varnishadm ban req.url "~"/index.html
五、varnish功能—反向代理,负载均衡
5.1 不同的域名对应不同的服务端
1.更改配置文件
vim /etc/varnish/default.vcl
2.测试:varnish主机能够对应两台不同的后端,其中30主机的发布页面为www.server2.com
,40主机的发布页面为www.server3.com
5.2 同一域名对应不同的服务端
1.更改配置文件
导入调度器模块
2.测试: