简单的配置文件内容如下:
- backend webserver {
- .host = "127.0.0.1";
- .port = "8090";
- .connect_timeout = 4s;
- .first_byte_timeout = 5s;
- .between_bytes_timeout = 20s;
- }
- acl purge {
- "localhost";
- "127.0.0.1";
- "18.81.12.10";
- }
- sub vcl_recv {
- if (req.request == "PURGE") {
- if (!client.ip ~ purge) {
- error 405 "Not allowed.";
- }
- return(lookup);
- }
- if (req.http.host ~ "^(read)?.easou.com$") {
- set req.backend = webserver;
- if (req.request != "GET" && req.request != "HEAD") {
- return(pipe);
- }
- else {
- return(lookup);
- }
- }
- else {
- error 404 " Cache Server";
- return(lookup);
- }
- if (req.request == "GET" && req.url ~ "\.(png|swf|txt|png|gif|jpg|css|js| htm|html)$") {
- unset req.http.cookie;
- }
- if (req.url ~ "^/images") {
- unset req.http.cookie;
- }
- if (req.http.Cache-Control ~ "(no-cache|max-age=0)") {
- purge_url(req.url);
- }
- return (lookup);
- if (req.http.x-forwarded-for) {
- set reqreq.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);
- }
- if (req.request != "GET" && req.request != "HEAD") {
- return (pass);
- }
- if (req.http.Authorization || req.http.Cookie) {
- return (pass);
- }
- }
- sub vcl_pipe {
- # set req.http.connection = "close";
- return (pipe);}
- sub vcl_hit {
- if (!obj.cacheable) {
- return (pass);
- }
- if (req.request == "PURGE") {
- set obj.ttl = 0s;
- error 200 "Purged.";
- }
- return (deliver);
- }
- sub vcl_miss {
- return (fetch);
- }
- sub vcl_fetch {
- if (!beresp.cacheable) {



