卖逼视频免费看片|狼人就干网中文字慕|成人av影院导航|人妻少妇精品无码专区二区妖婧|亚洲丝袜视频玖玖|一区二区免费中文|日本高清无码一区|国产91无码小说|国产黄片子视频91sese日韩|免费高清无码成人网站入口

varnish

如果是RedHat/CentOS系統(tǒng),在安裝varnish的時候首先要安裝以下軟件包automakeautoconflibtoolncurses-devellibxsltgroffpcre-devel

如果是RedHat/CentOS系統(tǒng),在安裝varnish的時候首先要安裝以下軟件包
automake
autoconf
libtool
ncurses-devel
libxslt
groff
pcre-devel
pkgconfig

groupadd www
useradd www -g www -s /sbin/nologin
mkdir -p /data/varnish/{cache,logs}
chmod w /data/varnish/{cache,logs}
chown -R www:www /data/varnish/{cache,logs}
cd /opt
yum install -y automake autoconf libtool ncurses-devel libxslt groff pcre-devel pkgconfig
wget http://sourceforge.net/projects/varnish/files/varnish/2.1.3/varnish-2.1.3.tar.gz/download
tar -zxvf varnish-2.1.3.tar.gz
cd varnish-2.1.3
./configure --prefix=/usr/local/varnish
make;make install


http://blog.sina.com.cn/s/blog_48f9c0840100lten.html
http://kerry.blog.51cto.com/172631/402923/
#============================ varnish配置 ===========================

vi /usr/local/varnish/etc/varnish/kerry.vcl

backend kerry { #定義后端服務(wù)器名
.host = "192.168.9.203"; #定義后端服務(wù)器IP
.port = "80"; #定義后端服務(wù)器端口
}

backend king {
.host = "192.168.9.204";
.port = "80";
}

#定義訪問控制列表,充許那些IP清除varnish 緩存
acl local {
"localhost";
"127.0.0.1";
}

#判斷host請求針對那個后端服務(wù)器
sub vcl_recv {
if (req.http.host ~ "^(www.)?kerry.com$") { #泛域名的寫法"^(.*.)?kerry.com$"
set req.backend = kerry;
}
elsif (req.http.host ~ "^(www.)?king.com$") {
set req.backend = king;
}
else {
error 404 "Unknown HostName!"; #如果都不匹配,返回404錯誤
}
#不充許非訪問控制列表的IP進行varnish緩存清除
if(req.request == "PURGE") {
if (!client.ip ~ local) {
error 405 "Not Allowed.";
return (lookup);
}
}
#清除url中有jpg|png|gif等文件的cookie
if (req.request == "GET" && req.url ~ ".(jpg|png|gif|swf|jpeg|ico)$") {
unset req.http.cookie;
}
#取消服務(wù)器上images目錄下所有文件的cookie
if (req.url ~ "^/images") {
unset req.http.cookie;
}
#判斷req.http.X-Forwarded-For,如果前端有多重反向代理,這樣可以獲取客戶端IP地址。
if (req.http.x-forwarded-for) {
set req.http.X-Forwarded-For =
req.http.X-Forwarded-For ", " client.ip;
}
else {
set req.http.X-Forwarded-For = client.ip;
}
if (req.request != "GET" &&
req.request != "HEAD" &&
req.request != "PUT" &&
req.request != "POST" &&
req.request != "TRACE" &&
req.request != "OPTIONS" &&
req.request != "DELETE") {
return (pipe);
}
#針對請求和url地址判斷,是否在varnish緩存里查找
if (req.request != "GET" && req.request != "HEAD") {
return (pass);
} ## 對非GET|HEAD請求的直接轉(zhuǎn)發(fā)給后端服務(wù)器
if (req.http.Authorization || req.http.Cookie) {
return (pass);
}
if (req.request == "GET" && req.url ~ ".(php)($|?)") {
return (pass);
} #對GET請求,且url里以.php和.php?結(jié)尾的,直接轉(zhuǎn)發(fā)給后端服務(wù)器
return (lookup)

標(biāo)簽: