Linux下的企业级CDN的加速实现一——Varnish(单个后端服务器的部署+查看命中情况+手动清除缓存)

一.实验环境(rhel6.5版本)

主机环境:rhel6.5 selinux 和iptables 都必须是disabled状态

各主机信息

主机名IP服务
server1172.25.83.1varnish
server2172.25.83.2apache

二.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

 

<1>:查看varnish服务允许打开文件的最大数量

此时需要查看系统的参数,看是否满足条件

[root@server1 ~]# sysctl   -a  |  grep  file

很明显:系统允许打开的文件的最大数量为98866,显然不能满足varnish服务的需求(131072)。所以需要修改内存的大小,来增加系统允许打开的文件的最大数量。

修改内存大小之后,再次查看系统允许打开的文件的最大数量(为188466),显然满足要求。

 

<2>:查看varnish服务的锁定内存

此时需要查看系统的参数,看是否满足条件

[root@server1 ~]# ulimit    -l       #此命令看到的结果并不准确。

varnish服务的锁定内存无法更改,只能通过修改系统的参数(下面2所讲解的内容),来使其达到要求。

 

<3>:修改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服务的主进程和子进程。

 

<1>新增加了一个varnish用户

<2>多了两个进程(主进程和子进程)

可以看到主进程开启的进程只有一个;而子进程开启的进程有109个

 

配置server2

1.下载http服务

 

在这里插入图片描述

 

2.进到http默认发布目录下编写文件

 

在这里插入图片描述

 

 

3.编写完后/etc/init.d/httpd start 开启服务即可


在这里插入图片描述

 

4.测试,是否共享成功:

 

测试端:物理机——IP为172.25.83.83

<1>可以在命令行测试:在真机上curl 172.25.83.1,访问的是server2主机http服务默认发布文件的内容

 

 

<2>也可以在浏览器查询;

 

 

三.查看缓存命中情况(在二的基础上)

配置server1:

1.修改varnish服务的默认配置文件

vim   /etc/varnish/default.vcl,写入如下内容(11-18行)

 

 

2.修改完配置文件后,/etc/init.d/varnish   reload,重新加载varnish服务即可

 

 

测试端:物理机——IP为172.25.83.83

第一次测试:未名中

 

 

第二次测试:命中

 

 

四.手动清除缓存(在三的基础上)

客户端测试:

<1>清除所有缓存

[root@server1 ~]# varnishadm   ban.url   .*$

 

在varnish服务的服务端清除所有缓存之前,测试端的测试结果:

 

 

在varnish服务的服务端清除所有缓存:

 

 

在varnish服务的服务端清除所有缓存之后:显示为MISS,则清除缓存成功

 

 

 

<2>清除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)

1.安装http,编辑配置文件

[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

4.编辑发布内容(php格式),并重启httpd服务

[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格式:

<1>清除所有缓存

在varnish服务的服务端清除所有缓存之前,测试端的测试结果:

在varnish服务的服务端清除所有缓存:

在varnish服务的服务端清除所有缓存之后:

<2>清除index.html页面缓存

在varnish服务的服务端清除index.html页面缓存之前,测试端的测试结果:

在varnish服务的服务端清除index.html页面缓存:

在varnish服务的服务端清除index.html页面缓存之后:

 

 

 


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值