varnish

#################varnish#################php

主机环境: rhel6 selinux and iptables disabledhtml

实验主机: 172.25.254.11    varnishlinux

         172.25.254.12    apacheweb

         172.25.254.13    apacheapache

处理过程大体分为以下几个步骤:vim

(1)Receive 状态,也就是请求处理的入口状态,根据 VCL 规则判断该请求应该是 Pass Pipe,或者进入 Lookup(本地查询)后端

(2)Lookup 状态,进入此状态后,会在 hash 表中查找数据,若找到,则进入 Hit 状态,不然进入 miss 状态。缓存

(3)Pass 状态,在此状态下,会进入后端请求,即进入 fetch 状态。服务器

(4)Fetch 状态,在 Fetch 状态下,对请求进行后端的获取,发送请求,得到数据,并进行本地的存储。负载均衡

(5)Deliver 状态将获取到的数据发送给客户端,而后完成本次请求。

1. 安装

yum install -y varnish-3.0.5-1.el6.x86_64.rpm varnish-libs-3.0.5-1.el6.x86_64.rpm

2.配置

1)配置一个后端服务器

准备工做:若是火墙没有关闭,将其关闭,打开其它两个服务器并装上httpd并打开

[root@server1 ~]# vim /etc/varnish/default.vcl 

wKioL1l4mT7ihxuoAAARbmn8DEw583.png-wh_50

 

12主机/var/www/html下编写index.html文件作为测试网页

[root@server1 ~]# vim /etc/sysconfig/varnish 

  66 VARNISH_LISTEN_PORT=80

[root@server1 ~]# /etc/init.d/varnish start

 测试:

wKioL1l4mVTQMThNAAAWbKpBKYs872.png-wh_50

 

(2)查看缓存命中状况


 wKiom1l4meDC5SwlAABIiiw671Y056.png-wh_50


 

[root@server1 bansys]# /etc/init.d/varnish reload

 wKiom1l4mhXwVKLQAADoQg2gbHI389.png-wh_50

 

(3)定义多个不一样域名站点后端服务器

wKioL1l4mijQZolRAABY2jaQhzw214.png-wh_50

#当访问 www.westos.org 域名时从 web1 上取数据,访问 bbs.westos.org 域名时到 web2 取数据,访问其余页面报错。

 

[root@server1 ~]# /etc/init.d/varnish reload

测试:

wKioL1l4mkCTYry7AAAhBTpT3f0170.png-wh_50

wKiom1l4mkCBXaJ0AAAfsTlShEc329.png-wh_50



(4)定义负载均衡

wKiom1l4mlLSiprcAACFHcrwRao629.png-wh_50

[root@server1 ~]# /etc/init.d/varnish reload

 

[root@server2 html]# mkdir /www/bbs -p

[root@server2 html]# mkdir /www/westos

mkdir: cannot create directory `/www/westos': File exists

[root@server2 html]# cd /www/bbs

[root@server2 bbs]# ls

Index.html

<h1>bbs.wesstoss.org</h1>

[root@server2 bbs]# vim *

[root@server2 bbs]# cd ..

[root@server2 www]# cd westos/

[root@server2 westos]# ls

Index.html

<h1>server2www.westos.org</h1>

[root@server2 westos]# vim *

[root@server2 westos]# /etc/init.d/httpd restart

[root@server3 ~]# cd /var/www/html

[root@server3 html]# ls

index.html

[root@server3 html]# vim *

<h1>server3www.westos.org</h1>

 

### 经过 varnishadm 手动清除缓存

# varnishadm ban.url .*$       #清除全部

# varnishadm ban.url /index.html    #清除 index.html 页面缓存

# varnishadm ban.url /admin/$     #清除 admin 目录缓存

注:每次测试时清除上一次的varnish的缓存,若是不进行缓存的话在配置时加上returnpass);

测试:

wKioL1l4ml-RbIlVAABs8MW68cI360.png-wh_50 

(5)varnish cdn 推送平台

[root@server1 ~]# yum reinstall -y php

[root@server1 ~]# unzip bansys.zip -d /var/www/html

[root@server1 ~]# cd /var/www/html

[root@server1 html]# ls

bansys  class_socket.php  config.php  index.php  purge_action.php  static

[root@server1 html]# cd bansys/

[root@server1 bansys]# ls

class_socket.php  config.php  index.php  purge_action.php  static

[root@server1 bansys]# vim config.php 

wKiom1l4mnfQhNpmAABHsKKDRrU627.png-wh_50

[root@server1 ~]# vim /etc/varnish/default.vcl

wKioL1l4mofwlgenAACZEqqZmIw553.png-wh_50

[root@server1 bansys]# /etc/init.d/varnish reload

测试:

wKiom1l4mpjQt0SHAACA57jZbi8936.png-wh_50

相关文章
相关标签/搜索