Varnish是一款高性能的开源HTTP加速器,编译方面这里不多说了。所以自己也采用这个加速器。结果表明还是蛮不错的。现将配置说明如下:
backend painiu { .host = "113.107.103.XXX"; .port = "81"; .connect_timeout = 100s; .first_byte_timeout = 500s; .between_bytes_timeout = 200s; } acl purge { "113.107.103.XXX"; "127.0.0.1"; } sub vcl_recv { if (req.request == "PURGE") { if (!client.ip ~ purge) { error 405 "Not allowed."; } lookup; } #unset req.http.X-Varnish; #unset req.http.Via; #unset req.http.Accept-Encoding; #unset req.http.Vary; if (req.http.host ~ "^(.*).painiu.com") { set req.backend = painiu; if (req.request != "GET" && req.request != "HEAD") { pipe; } else { lookup; } } elseif (req.http.host ~ "^(.*).hi51.cn") { set req.backend = painiu; if (req.request != "GET" && req.request != "HEAD") { pipe; } else { lookup; } } elseif (req.http.host ~ "^hi51.cn") { set req.backend = painiu; if (req.request != "GET" && req.request != "HEAD") { pipe; } else { lookup; } } elseif (req.http.host ~ "^(.*).365.com") { set req.backend = painiu; if (req.request != "GET" && req.request != "HEAD") { pipe; } else { lookup; } } elseif (req.http.host ~ "^365.com") { set req.backend = painiu; if (req.request != "GET" && req.request != "HEAD") { pipe; } else { lookup; } } elseif (req.http.host ~ "^painiu.com") { set req.backend = painiu; if (req.request != "GET" && req.request != "HEAD") { pipe; } else { lookup; } } else { error 404 "Painiu Cache Server"; lookup; } } sub vcl_hit { if (req.request == "PURGE") { set obj.ttl = 0s; error 200 "Purged."; } } sub vcl_miss { if (req.request == "PURGE") { error 404 "Not in cache."; } } sub vcl_fetch { if (req.request == "GET" && req.url ~ "\.(txt|js|html|htm|css|jpg|gif|png|swf)($|\?)") { set obj.ttl = 3600s; } else { set obj.ttl = 0s; } } sub vcl_deliver { remove resp.http.X-Varnish; remove resp.http.Via; if (obj.hits > 0) { set resp.http.X-Cache = "HIT"; } else { set resp.http.X-Cache = "MISS"; } }
文章评论