backend picserver { .host = "123.34.34.2"; .port = "80"; } acl purge { "localhost"; "127.0.0.1"; "192.168.20.0"/24; } sub vcl_recv { if (req.request == "PURGE") { if (!client.ip ~ purge) { error 405 "Not allowed."; } return (lookup); } if (req.http.referer) { if ( req.url ~ "/html22|tabloid"){ if ( !(req.http.referer ~ "http://.*aa/.cn" || req.http.referer ~ "http://.*bb/.cn" || req.http.referer ~ "http://.*cc/.cn" || req.http.referer ~ "http://.*dd/.cn" )) { set req.http.host = "www.baidu.com"; set req.url = "/img/baidu_logo.gif"; } } } else { return (lookup); } if (req.http.host ~ ".(xxx.cn|mmm.cn)") { set req.backend = picserver; if (req.request != "GET" && req.request != "HEAD") { return (pipe); } else { return (lookup); } } else { error 404 "Union Ete Cache Server"; return (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|css|swf)$") { set obj.ttl = 3600s; } else { set obj.ttl = 30d; } }