配置varnish服务
来源:互联网 发布:什么软件测八卦 编辑:程序博客网 时间:2024/06/05 03:36
#####varnish######
CDN的全称是Content Delivery Network,即内容分发网络。其基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定。squid :磁盘,并联,性能最差 varnish :内存,单点,url哈希,易失性,缓存命中率最高,性能最好 nginx :第三方模块,插件.
处理过程大致分为如下几个步骤:
(1)Receive 状态,也就是请求处理的入口状态,根据 VCL 规则判断该请求应该是 Pass 或
Pipe,或者进入 Lookup(本地查询)。
(2)Lookup 状态,进入此状态后,会在 hash 表中查找数据,若找到,则进入 Hit 状态,否则进
入 miss 状态。
(3)Pass 状态,在此状态下,会进入后端请求,即进入 fetch 状态。
(4)Fetch 状态,在 Fetch 状态下,对请求进行后端的获取,发送请求,获得数据,并进行本地
的存储。
(5)Deliver 状态, 将获取到的数据发送给客户端,然后完成本次请求。
1.操作环境:
rhel6 selinux and iptables disabled
一台物理机,三台redhat6.5server1 2 3
2.操作过程:
1.后端服务器的配置:物理主机访问server1,事实是访问server2
Server1:
###安装varnish软件包
yum install varnish-3.0.5-1.el6.x86_64.rpm varnish-libs-3.0.5-1.el6.x86_64.rpm -y
###配置一个后端服务器:
cd /etc/varnish/
ls
vim default.vcl
7 backend web1 {
8 .host = "172.25.21.2";
9 .port = "80";
10 }
##配置 varnish 服务端口:
vim/etc/sysconfig/varnish
66 VARNISH_LISTEN_PORT=80
/etc/init.d/varnish start ###开启varnish服务
netstat -antlp ####查看有没有80端口
Server2:
安装httpd,在共享目录下建立共享文件建立
yum install httpd -y
/etc/init.d/httpd start
cd /var/www/html
ls
vim index.html
cat index.html
测试:物理机
[root@foundation20 ~]# vim /etc/hosts ###本地解析
172.25.20.1 server1 www.westos.com
[root@foundation20 ~]# curl www.westos.org
<h1>server 2</h1>
浏览器输入:172.25.20.1
2.缓存配置:
Server1:##查看缓存命中情况
[root@server1 varnish]# vim default.vcl
12 sub vcl_deliver {
13 if (obj.hits > 0) {
14 set resp.http.X-Cache = "HIT from westos cache";
15 }
16 else {
17 set resp.http.X-Cache = "MISS from westos cache";
18 }
19 return (deliver);
20 }
[root@server1 varnish]# /etc/init.d/varnish reload
物理机:
###测试缓存命中:
[root@foundation20 ~]# curl -I 172.25.20.1
HTTP/1.1 200 OK
Server: Apache/2.2.15 (Red Hat)
Last-Modified: Thu, 20 Jul 2017 02:43:21 GMT
ETag: "40026-12-554b6b639ddea"
Content-Type: text/html; charset=UTF-8
Content-Length: 18
Accept-Ranges: bytes
Date: Thu, 20 Jul 2017 03:06:35 GMT
X-Varnish: 1716317952
Age: 0
Via: 1.1 varnish
Connection: keep-alive
X-Cache: MISS from westos cache #未命中
[root@foundation20 ~]# curl -I 172.25.20.1
HTTP/1.1 200 OK
Server: Apache/2.2.15 (Red Hat)
Last-Modified: Thu, 20 Jul 2017 02:43:21 GMT
ETag: "40026-12-554b6b639ddea"
Content-Type: text/html; charset=UTF-8
Content-Length: 18
Accept-Ranges: bytes
Date: Thu, 20 Jul 2017 03:08:04 GMT
X-Varnish: 1716317953 1716317952
Age: 89
Via: 1.1 varnish
Connection: keep-alive
X-Cache: HIT from westos cache #命中
### 通过 varnishadm 手动清除缓存:
[root@server1 varnish]#varnishadm ban.url .*$
#清除所有
[root@server1 varnish]#varnishadm ban.url /index.html
#清除 index.html 页面缓存
[root@server1 varnish]# varnishadm ban.url /admin/$
#清除 admin 目录缓存
3.定义多个不同域名站点的后端服务器
Server1:
(1)###定义多个不同域名站点的后端服务器
[root@server1 varnish]# vim default.vcl
backend web1 {
.host = "172.25.20.2";
.port = "80";
}
backend web2 {
.host = "172.25.20.3";
.port = "80";
}
sub vcl_recv {
if (req.http.host ~ "^(www.)?westos.org") {
set req.http.host = "www.westos.org";
set req.backend = web1;
} elsif (req.http.host ~ "^bbs.westos.org") {
set req.backend = web2;
} else {error 404 "westos cache";
}
}
[root@server1 varnish]# /etc/init.d/varnish reload
Loading vcl from /etc/varnish/default.vcl
Current running config name is reload_2017-07-20T11:05:50
Using new config name reload_2017-07-20T11:31:05
VCL compiled.
available 0 boot
available 2 reload_2017-07-20T11:05:50
active 0 reload_2017-07-20T11:31:05
Done
server3:
10 yum install httpd -y
11 /etc/init.d/httpd start
12 cd /var/www/html
13 ls
14 vim index.html
15 cat index.html
物理机:
[root@foundation21 ~]# vim /etc/hosts ###本地解析
[root@foundation21 ~]# curl www.westos.org
<h1>server 2</h1>
[root@foundation21 ~]# curl bbs.westos.org
<h1>server 3</h1>
也可用浏览器输入域名测试
4.负载均衡
Server2:
[root@server2 html]# mkdir /www/bbs -p
[root@server2 html]# mkdir /www/westos
[root@server2 html]# cd /www/bbs/
[root@server2 bbs]# ls
[root@server2 bbs]# vim /etc/httpd/conf/httpd.conf
[root@server2 bbs]# /etc/init.d/httpd restart
[root@server2 bbs]# vim /etc/hosts
[root@server2 bbs]# vim index.html
<h1>bbs.westos.org</h1>
[root@server2 bbs]# cd /www/westos/
[root@server2 westos]# ls
[root@server2 westos]# vim index.html
<h1>server2-www.westos.org</h1>
server1:(varnish主机)
[root@server1 varnish]# vim default.vcl
[root@server1 varnish]# /etc/init.d/varnish reload
server3:
vim /var/www/html/index.html
<h1>server3-www.westos.org</h1>
测试:物理机
varnishadm ban.url /
curl www.westos.org
curl bbs.westos.org
不加pass时:需要清除缓存才能跳到另一个页面(页面缓存时间是120s)
加pass
5.varnish cdn 推送平台
(1)varnish端(server1):
yum install php -y ##下载php
yum install httpd unzip -y
vim /etc/httpd/conf/httpd.conf ##编辑apache配置文件
Listen 8080 ##80端口已经被varnish占用unzip bansys.zip -d /var/www/html/
mv /var/www/html/bansys/* /var/www/html
rm -fr /var/www/html/bansys/
vim /var/www/html/config.php ##编辑推送平台配置
/etc/init.d/httpd start
vim /etc/varnish/default.vcl ##编辑配置文件
/etc/init.d/varnish reload
(2)测试:
浏览器访问 www.westos.org/index.html
浏览器访问 172.25.60.1:8080
- 配置varnish服务
- varnish服务配置
- 缓存服务varnish安装配置
- varnish 配置笔记(varnish添加到系统服务里)(转)
- 将Varnish配置为Centos的服务
- 缓存服务varnish 3.0安装配置
- Varnish+Nginx 配置----Varnish
- varnish配置
- Varnish配置
- varnish 配置
- varnish cache 配置使用
- varnish cache 配置使用
- varnish安装配置全过程
- haproxy + varnish cache配置
- Linux+varnish安装配置
- varnish安装配置
- Varnish简单配置
- varnish安装配置
- WIN10上的Anaconda教程
- linux企业部分 varnish
- POJ
- 数组形式二叉树之C++封装
- synchronized关键字的使用
- 配置varnish服务
- 深入研究Struts2(三)---准备Struts2的学习和开发环境
- 关于eventmachine,协程在rails里面的使用
- 单链表的测长和打印和节点查找、插入、删除、逆置
- 【图论经典题】Prison Break
- 快捷键 变量 内外类 加号重载20170719
- java程序员的python之路(线程)
- 设计模式-装饰者模式
- palindromeNumber