一.实验环境(rhel6.5版本)
主机环境:rhel6.5 selinux 和iptables 都必须是disabled状态
各主机信息
主机名 | IP | 服务 |
---|---|---|
server1 | 172.25.8.1 | varnish |
server2 | 172.25.8.2 | apache |
二.Varnish实现CDN加速(单个后端服务器)的部署
配置server1:
1.从官网下载varnish-3.0.5-1.el6.x86_64.rpm 和 varnish-libs-3.0.5-1.el6.x86_64.rpm两个软件包
2. 安装varnish 软件包
3. 修改Varnish的主配置文件
首先查看varnish 配置文件所在位置
(1)查看varnish 服务允许打开文件句柄的最大数量
此时需要查看系统的参数,看是否满足条件
注:fs.max-file(/proc/sys/fs/file-max)表示系统级别的能够打开的文件句柄的数量, 而ulimit -n控制进程级别能够打开的文件句柄的数量。
发现系统级所允许打开的最大文件句柄数小于varnish 的最大文件句柄数,因此需要修改虚拟机内存的大小,来增大系统该参数的数值。
修改内存大小后,再次查看系统级所允许打开的最大文件句柄数,发现已经满足要求
(2)查看varnish 服务的锁定内存
varnish服务的锁定内存无法更改,只能通过修改系统的参数(下第4部分介绍),来使其达到要求。
此时需要查看系统的参数,看是否满足条件
ulimit 命令讲解:
https://www.cnblogs.com/wangkangluo1/archive/2012/06/06/2537677.html
(3)修改varnish 把监听端口改为80
4. 修改系统安全限制配置文件
注:/etc/security/limits.conf 配置详解:
http://www.mamicode.com/info-detail-1941785.html
https://blog.csdn.net/fanren224/article/details/79971359
修改varnish 用户的相关限制
修改限制:文件句柄数,锁定内存大小,以及进程数
注:因为varnish这个程序运行在varnish这个用户的私有空间内,内核对普通用户限制的最大文件数为1024.对 varnish用户限制的最大文件数为131072,我们需要满足131072这个最大值。所以在之前我们要将server1的memory改为2048
5. 修改varnish默认文件,配置单个后端服务器
设置后端服务器ip 为172.25.8.2 端口为80(即server2 的apache)
6. 修改完配置文件后/etc/init.d/varnish restart开启varnish服务即可
7. 开启后 ,cat /etc/passwd查看是否多了一个varnish用户,ps aux | grep varnish 查看进程是否在运行
(1)新增加了一个varnish用户
(2)多了两个进程(主进程和子进程)
主进程开启的线程只有一个;而子进程开启的线程有109个
注:/proc 文件系统详解 https://www.cnblogs.com/zlhff/p/5435720.html
配置server2
1. 下载http服务
2. 进到http默认发布目录下编写文件
3. 编写完后/etc/init.d/httpd start 开启服务即可
4. 在真机上测试
测试服务器(server2)能否访问
测试varnish 服务器能否访问
三.查看缓存命中情况(在二的基础上)
配置server1:
1. 修改varnish服务的默认配置文件
2. 修改完配置文件后,/etc/init.d/varnish reload,重新加载varnish服务即可
3. 在物理机上测试
第一次测试:未名中
第二次测试:命中
说明数据已经从apache 服务端 缓存至 CDN节点中(varnish 服务器)
四.手动清除缓存(在三的基础上)
在varnish服务的服务端清除所有缓存之前,物理机的测试结果:
命中缓存
(1)清除所有varnish 缓存
在varnish服务的服务端清除所有缓存之后:显示为MISS,则清除缓存成功
(2)仅清除varnish 中 index.html 页面的缓存
在varnish服务的服务端清除index.html页面缓存之后:
仅是访问index.html 页面的缓存无法命中