- 论坛徽章:
- 0
|
本帖最后由 wbftp 于 2010-04-09 11:13 编辑
环境:centos 5.4
varnish 2.04
问题:
启动参数:/usr/local/varnish/sbin/varnishd -n /data/vcache -f /usr/local/varnish/etc/vhost/vhost.vcl -a 0.0.0.0:80 -s file,/data/vcache/varnish_cache.data,1G -g www -u www -w 30000,50000,10 -T 127.0.0.1:3500 -p client_http11 on
1、启动参数不能加线程,-w 30000,50000,10 不加线程访问一切正常。加了就访问不了网站,一直在连接。服务器没影响。
2、如果不加-w 30000,50000,10 线程数,默认最大会支持多少线程呢。
vhost.vcl配置如下
backend dvd1 {
.host = "174.137.22.10";
.port = "80";
}
backend dvd2 {
.host = "174.142.22.115";
.port = "80";
}
backend dvd3 {
.host = "174.36.22.219";
.port = "80";
}
backend dvd4 {
.host = "174.36.33.21";
.port = "80";
}
acl purge {
"localhost";
"127.0.0.1";
"174.36.133.0"/28;
}
sub vcl_recv {
if (req.request == "PURGE") {
if (!client.ip ~ purge) {
error 405 "Not allowed.";
}
lookup;
}
if (req.http.host ~ ".dvd11.com") {
set req.backend = dvd1;
if (req.request != "GET" && req.request != "HEAD") {
pipe;
}
else {
lookup;
}
}
elseif (req.http.host ~ "^dvd11.com") {
set req.backend = dvd1;
if (req.request != "GET" && req.request != "HEAD") {
pipe;
}
else {
lookup;
}
}
elseif (req.http.host ~ ".dvd22.com") {
set req.backend = dvd2;
if (req.request != "GET" && req.request != "HEAD") {
pipe;
}
else {
lookup;
}
}
elseif (req.http.host ~ "^dvd22.com") {
set req.backend = dvd2;
if (req.request != "GET" && req.request != "HEAD") {
pipe;
}
else {
lookup;
}
}
elseif (req.http.host ~ ".dvd33.com") {
set req.backend = dvd3;
if (req.request != "GET" && req.request != "HEAD") {
pipe;
}
else {
lookup;
}
}
elseif (req.http.host ~ "^dvd33.com") {
set req.backend = dvd3;
if (req.request != "GET" && req.request != "HEAD") {
pipe;
}
else {
lookup;
}
}
elseif (req.http.host ~ ".dvd44.com") {
set req.backend = dvd4;
if (req.request != "GET" && req.request != "HEAD") {
pipe;
}
else {
lookup;
}
}
elseif (req.http.host ~ "^dvd44.com") {
set req.backend = dvd4;
if (req.request != "GET" && req.request != "HEAD") {
pipe;
}
else {
lookup;
}
}
else {
error 404;
lookup;
}
}
sub vcl_hit {
if (req.request == "PURGE") {
set obj.ttl = 0s;
error 200 "Purged.";
}
else if (!obj.cacheable) {
pass;
}
}
sub vcl_miss {
if (req.request == "PURGE") {
error 404 "Not in cache.";
}
}
sub vcl_fetch {
set obj.ttl = 30d;
remove obj.http.Set-Cookie;
}
sub vcl_deliver {
set resp.http.x-hits = obj.hits ;
if (obj.hits > 0) {
set resp.http.X-Cache = "HIT";
} else {
set resp.http.X-Cache = "MISS";
}
} |
|