Varnish
安装配置
1
、安装前的环境准备
主机名 IP地址
Varnish-server eth0 172.16.23.1 桥接方式 eth1 192.168.23.111 仅主机
Web-server1 192.168.23.11 仅主机
Web-server2 192.168.23.12 仅主机
Web-server1
与 Web-server2
网关都指向 192.168.23.111
vnet1 ip
地址是192.168.23.77/24
2
、下载varnish
软件及安装
Varnish
的官方站点为http://varnish-cache.org
,
varnish-3.0.2-1.el5.i386.rpm varnish-libs-3.0.2-1.el5.i386.rpm
rpm -ivh varnish-3.0.2-1.el5.i386.rpm varnish-libs-3.0.2-1.el5.i386.rpm
3
、编缉配置文件/etc/sysconfig/varnish [
内存作缓存,真实应用中安装64
位操作系统,给2G
内存作为缓存,也不能太大]
vim /etc/sysconfig/varnish
VARNISH_STORAGE_SIZE=64m //
设置内存作缓存大小的空间
VARNISH_STORAGE="malloc,${VARNISH_STORAGE_SIZE}" //
使用内存作缓存
4
、编缉/etc/varnish/default.vcl
服务配置
backend default {
.host = "127.0.0.1";
.port = "80";
} //
默认把本机服务器作为后端服务器
把修改为:
backend default {
.host = "192.168.23.11";
.port = "80";
}
5
、在浏览器中查看
http://172.16.23.1:6081
curl -I http://172.16.23.1:6081
via: 1.1 varnish
从varnish
获得的数据
6、修改/etc/varnish/default.vcl 文件,varnish实现后端服务器负载均衡
backend server1 {
.host = "192.168.23.11";
.port = "80";
}
backend server2 {
.host = "192.168.23.12";
.port = "80";
}
director myload random {
{
.backend = server1;
.weight = 3;
}
{
.backend = server2;
.weight = 1;
}
}
sub vcl_recv {
set req.backend = myload;
}
myload
作为vcl_recv
处理机制响应用户请求的客户端
在浏览器查看 http://172.16.23.1:6081
7
、可修改为如下,.probe
是后端服务器状态检测的一些参数值
backend server1 {
.host = "server1.example.com";
.probe = {
.url = "/";
.interval = 5s;
.timeout = 1 s;
.window = 5;
.threshold = 3;
}
}
backend server2 {
.host = "server2.example.com";
.probe = {
.url = "/";
.interval = 5s;
.timeout = 1 s;
.window = 5;
.threshold = 3;
}
}
.probe
作为状态检测 url
作为根,interval
每隔多长时间检查一次。timeout
检查超时时间,window
滑动窗口5
次,threshold
如果window
只剩三个格式,就可能报告状态有问题
8
、杂项:
varnishadm -T 127.0.0.1:6082 -S /etc/varnish/secret
help
ping
status
stop
停步线程
start
启动线程
param.set
设定线程池
如果想连进来,不用指-S /etc/varnish/secrt
可编缉配置文件/etc/varnish/default.vcl
把DAEMON_OPTS ..... -S ${VARNISH_SECRET_FILE}
varnishadm -T 127.0.0.1:6082
就可直接连进来,不需要认证,但不安全
telnet 127.0.0.1:6082
可远程连接
service varnishlog start //
是数据文件格式data
,/var/log/varnish
service varnishncsa start //
是文本文件格式 /var/log/varnish
刚看时可能没数据,访问下就行数据