VCL changes from 2.0 to 2.1
freestyler
kofreestyler at gmail.com
Mon Jun 7 10:55:01 CEST 2010
obj.* is now called beresp.* in vcl_fetch, and obj.* is now read-only.
see http://varnish-cache.org/wiki/changelog_2.0.6-2.1.0
On Mon, Jun 7, 2010 at 4:43 PM, Alex F <alex at acasa.ro> wrote:
> Hello,
> I just upgraded from varnish 2.0.5 to 2.1.2 and realized that the old VCL is
> not working anymore.
> My VCL looks like this:
>
> backend default {
> .host = "0.0.0.0";
> .port = "80";
> }
> acl purge {
> "localhost";
> "192.168.100.0"/24;
> }
> sub vcl_recv {
> if (req.request == "PURGE") {
> if(!client.ip ~ purge) {
> error 405 "Not Allowed";
> }
> purge("req.url == " req.url);
> }
> 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.http.Expect) {
> return(pipe);
> }
> if (req.request != "GET" && req.request != "HEAD") {
> return(pipe);
> }
> if (req.http.Authorization) {
> return(pass);
> }
> if (req.http.Accept-Encoding) {
> if (req.http.Accept-Encoding ~ "gzip") {
> set req.http.Accept-Encoding = "gzip";
> } elsif (req.http.Accept-Encoding ~ "deflate") {
> set req.http.Accept-Encoding = "deflate";
> } else {
> remove req.http.Accept-Encoding;
> }
> }
> set req.grace = 30s;
> if (req.url ~ "^/(uploads|images|img|css|js)/" || req.url ~
> "\.(txt|ico|png|jpeg|jpg|gif|tiff|js|css)$") {
> return(lookup);
> }
> if (req.http.Cookie) {
> return(pass);
> }
> return(lookup);
> }
> sub vcl_hit {
> if (!obj.cacheable) {
> return(pass);
> }
> return(deliver);
> }
> sub vcl_miss {
> return (fetch);
> }
> sub vcl_fetch {
> if (!obj.cacheable) {
> return(pass);
> }
> if (obj.http.Set-Cookie) {
> return(pass);
> }
> if (obj.http.Pragma ~ "no-cache" || obj.http.Cache-Control ~ "no-cache"
> || obj.http.Cache-Control ~ "private") {
> return(pass);
> }
> if (obj.status !=200) {
> return (pass);
> }
> set obj.grace=10080m;
> if (obj.ttl < 180s) {
> set obj.ttl = 1d;
> }
> }
> sub vcl_deliver {
> if (obj.hits > 0) {
> set resp.http.X-Cache = "HIT";
> set resp.http.X-Cache-Hits = obj.hits;
> } else {
> set resp.http.X-Cache = "MISS";
> }
> }
>
> And upon compiling this VCL I receive:
> Message from VCC-compiler:
> Variable 'obj.cacheable' not accessible in method 'vcl_fetch'.
> At: (input Line 92 Pos 14)
> if (!obj.cacheable) {
> -------------#############---
> Running VCC-compiler failed, exit 1
> VCL compilation failed
> Can you please point me in the right direction? Also, any advices for the
> current VCL are welcome.
> Thank you.
>
>
> _______________________________________________
> varnish-misc mailing list
> varnish-misc at varnish-cache.org
> http://lists.varnish-cache.org/mailman/listinfo/varnish-misc
>
More information about the varnish-misc
mailing list