先安装写依赖包 以免后面报错
automake autoconf libtool ncurses-devel libxslt groff pcre-devel pkgconfig (Ubuntu下的) libproc g++
一 、安装Varnish
tar zxvf varnish-2.1.3.tar.gz -C /usr/local/src/
# cd /usr/local/src/varnish-2.1.3/
# ./configure --prefix=/usr/local/varnish
# make
# make install
二、创建www用户和组,以及Varnish缓存文件存放目录
1. 创建组
# groupadd www
2.创建用户
useradd www -g www -s /sbin/nologin
-g:指定用户属于哪个组
-s:指定用户属于哪个shell登录(nologin就是不允许登录)
3.创建缓存文件目录
# mkdir -p /data/varnish/
-p:可以是一个路径名称。此时这个路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,而且一次可以建立多个目录。
4.给目录添加写入权限
# chmod +w /data/varnish/
5. 更改属主和属组
# chown -R www:www /data/varnish/
############## 配置文件 #############################
vi /usr/local/varnish/etc/varnish/www.vcl
backend www { #定义后端服务器名
.host = "192.168.1.69"; #定义后端服务器IP
.port = "80"; #定义后端服务器端口
}
#定义访问控制列表,充许那些IP清除varnish 缓存
acl purge {
"localhost";
"127.0.0.1";
"192.168.1.0"/24 ;
}
# sub vcl_recv {
# if (req.request == "PURGE") {
# if (!client.ip ~ purge) {
# error 405 "Not allowed.";
# }
# return(lookup);
# }
判断host请求针对那个后端服务器
sub vcl_recv {
if (req.http.host ~ "^192.168.1.124") { #泛域名的写法"^(.*.)?test.com$"
set req.backend = www;
}
else {
error 404 "Unknown HostName!"; #如果都不匹配,返回404错误
}
}
#####################################
三 。 启动
#!/usr/bin/bash
/usr/local/varnish/sbin/varnishd -n /data/varnish/ \
-f /usr/local/varnish/etc/varnish/www.conf \
-a 0.0.0.0:80 \
-s file,/data/varnish/varnish_cache.data,1024m \
-p user=www -p group=www \
-w 30000,51200,10 \
-T 127.0.0.1:3500 \
-P /usr/local/varnish/var/varnish.pid
参数说明:
/usr/local/varnish/sbin/varnishd
-n /data/varnish/
-f /usr/local/varnish/etc/varnish/www.conf #配置文件
-a 0.0.0.0:80 #监听端口
-s file,/data/varnish/varnish_cache.data,1024m # file 指定varnish缓存文件的位置以及大小
–p user=www –p group=www #用户和组
-w 30000,51200,10 #指处理的最小请求数、最大请求数、超时时间
-T 127.0.0.1:3500 #管理端口
–p client_http11=on #支持http1.1协议
-P /usr/local/varnish/var/varnish.pid #指定其进程码文件的位置,实现管理