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 刚看时可能没数据,访问下就行数据