一.实验环境(rhel6.5版本)
主机环境:
各主机信息
主机名 | IP | 服务 |
---|---|---|
server1 | 172.25.83.1 | varnish |
server2 | 172.25.83.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.安装这两个软件包
[root@server1 ~]# yum install varnish-* -y
3.修改Varnish的主配置文件:
[root@server1 ~]# rpm -qc varnish-3.0.5-1.el6.x86_64
[root@server1 ~]# vim /etc/sysconfig/varnish
:查看varnish服务允许打开文件的最大数量
此时需要查看系统的参数,看是否满足条件
[root@server1 ~]# sysctl -a | grep file
很明显:系统允许打开的文件的最大数量为98866,显然不能满足varnish服务的需求(131072)。所以需要修改内存的大小,来增加系统允许打开的文件的最大数量。
修改内存大小之后,再次查看系统允许打开的文件的最大数量(为188466),显然满足要求。
:查看varnish服务的锁定内存
此时需要查看系统的参数,看是否满足条件
[root@server1 ~]# ulimit -l #此命令看到的结果并不准确。
varnish服务的锁定内存无法更改,只能通过修改系统的参数(下面2所讲解的内容),来使其达到要求。
:修改varnish 把监听端口改为80
4.修改varnish用户安全配置文件
vim /etc/security/limits.conf 在最后写入如下内容
注意:因为varnish这个程序运行在varnish这个用户的私有空间内,内核对普通用户限制的最大文件数为1024.对 varnish用户限制的最大文件数为131072,我们需要满足131072这个最大值。所以在之前我们要将server1的memory改为2048
5.修改varnish默认文件,配置单个后端服务器
vim /etc/varnish/default.vcl
6.修改完配置文件后/etc/init.d/varnish restart开启varnish服务即可
7.开启后 ,cat /etc/passwd查看是否多了一个varnish用户,ps aux | grep varnish 查看进程是否在运行
服务启动之后,可以看到增加了一个varnish用户(其实varnish服务安装完成之后,就已经增加了一个varnish用户);会有相应的varnish服务的主进程和子进程。
新增加了一个varnish用户
多了两个进程(主进程和子进程)
可以看到主进程开启的进程只有一个;而子进程开启的进程有109个
配置server2
1.下载http服务
2.进到http默认发布目录下编写文件
3.编写完后/etc/init.d/httpd start 开启服务即可
4.测试,是否共享成功:
测试端:物理机——IP为172.25.83.83
可以在命令行测试:在真机上curl 172.25.83.1,访问的是server2主机http服务默认发布文件的内容
也可以在浏览器查询;
三.查看缓存命中情况(在二的基础上)
1.修改varnish服务的默认配置文件
vim /etc/varnish/default.vcl,写入如下内容(11-18行)
2.修改完配置文件后,/etc/init.d/varnish reload,重新加载varnish服务即可
测试端:物理机——IP为172.25.83.83
第一次测试:未名中
第二次测试:命中
四.手动清除缓存(在三的基础上)
客户端测试:
清除所有缓存
[root@server1 ~]# varnishadm ban.url .*$
在varnish服务的服务端清除所有缓存之前,测试端的测试结果:
在varnish服务的服务端清除所有缓存:
在varnish服务的服务端清除所有缓存之后:显示为MISS,则清除缓存成功
清除index.html页面缓存
[root@server1 ~]# varnishadm ban.url /index.html
在varnish服务的服务端清除index.html页面缓存之前,测试端的测试结果:
在varnish服务的服务端清除index.html页面缓存:
在varnish服务的服务端清除index.html页面缓存之后:
如果是在实验五+实验二的基础上,值的注意的是要注释掉return (pass)这句话。创建缓存递送平台(web界面清空缓存);
Varnish服务的服务端(vm1虚拟机——主机名为server1——IP为172.25.83.1)
[root@server1 ~]# yum install httpd -y #安装httpd服务
因为varnish占用80端口,所以需要把httpd服务的默认端口80修改为其他端口。
2.下载bansys.zip,并进行解压;
[root@server1 ~]# yum install unzip -y #因为 没有unzip命令,所以要安装unzip命令
[root@server1 ~]# unzip bansys.zip -d /var/www/html/ #-d指定解压目录
3.安装php(使得httpd服务可以识别php格式的内容)
[root@server1 ~]# yum install php -y
[root@server1 ~]# cd /var/www/html/bansys/
[root@server1 bansys]# mv * ..
[root@server1 bansys]# cd ..
[root@server1 html]# ls
bansys class_socket.php config.php index.php purge_action.php static
[root@server1 html]# vim config.php
[root@server1 html]# /etc/init.d/httpd restart
5.修改varnish服务的默认配置文件,修改之后,重新加载varnish服务
[root@server1 ~]# vim /etc/varnish/default.vcl
下面值的注意的是:17行的~前后都必须有空格
[root@server1 html]# /etc/init.d/varnish reload
测试端:物理机——IP为172.25.83.83
在浏览器打开172.25.83.1:8080页面,进入php格式:
清除所有缓存
在varnish服务的服务端清除所有缓存之前,测试端的测试结果:
在varnish服务的服务端清除所有缓存:
在varnish服务的服务端清除所有缓存之后:
清除index.html页面缓存
在varnish服务的服务端清除index.html页面缓存之前,测试端的测试结果:
在varnish服务的服务端清除index.html页面缓存:
在varnish服务的服务端清除index.html页面缓存之后:
文章知识点与官方知识档案匹配,可进一步学习相关知识CS入门技能树Linux入门初识Linux24698 人正在系统学习中
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!