测试环境:
1.客户端:client :IP: 192.168.4.10/24
2.调度器:proxy:IP: 192.168.4.5/24 192.168.2.5/24
3.web后端服务器:web1: 192.168.2.100/24
1.在后端服务器上创建一个http页面作为测试页面
[root@web1 ~]# yum -y install httpd # 装包
[root@web1 ~]# systemctl start httpd # 启动httpd服务
[root@web1 ~]# ss -anptu | grep httpd # 查看httpd进程,确认httpd启动
[root@web1 ~]# echo"192.168.2.100" > /var/www/html/index.html # 创建web测试页面
2.部署varnish缓存服务器
[root@proxy ~]# yum -y install gcc readline-devel //安装软件依赖包
[root@proxy ~]# yum -y install ncurses-devel //安装软件依赖包
[root@proxy ~]# yum -y install pcre-devel //安装软件依赖包
[root@proxy ~]# yum -y install python-docutils //安装软件依赖包
[root@proxy ~]# useradd -s /sbin/nologin varnish //创建账户
[root@proxy ~]# tar -xf varnish-5.2.1.tar.gz
[root@proxy ~]# cd varnish-5.2.1
[root@proxy varnish-5.2.1]# ./configure
[root@proxy varnish-5.2.1]# make && make install
3.复制启动脚本及配置文件(注意相对路径与绝对路径)
[root@proxy varnish-5.2.1]# cp etc/example.vcl /usr/local/etc/default.vcl
4.修改代理配置文件
[root@proxy ~]# vim /usr/local/etc/default.vcl
backend default {
.host = “192.168.2.100”;
.port = “80”;
}
5.启动服务
[root@proxy ~]# varnishd -f /usr/local/etc/default.vcl
//varnishd命令的其他选项说明如下:
//varnishd -s malloc,128M 定义varnish使用内存作为缓存,空间为128M
//varnishd -s file,/var/lib/varnish_storage.bin,1G 定义varnish使用文件作为缓存
6.其他操作
1)查看varnish日志
[root@proxy ~]# varnishlog //varnish日志
[root@proxy ~]# varnishncsa //访问日志
2)更新缓存数据,在后台web服务器更新页面内容后,用户访问代理服务器看到的还是之前的数据,说明缓存中的数据过期了需要更新(默认也会自动更新,但非实时更新)。
[root@proxy ~]# varnishadm
varnish> ban req.url ~ .*
//清空缓存数据,支持正则表达式