2015-07-10 91 views
0

我们正试图让Varnish缓存范围请求。我们正在使用Varnish 4.0。Varnish.4.x未缓存范围请求

我们以下配置

vcl 4.0;

import std; 

# Default backend definition. Set this to point to your content server. 
backend default { 
    .host = "194.142.x.x"; 
    .port = "8008"; 
} 

sub vcl_recv { 

if (req.url ~ "(?i)\.(png|avi|mkv|mp4)(\?[a-z0-9]+)?$") { 
    unset req.http.Cookie; 
    } 
    # Happens before we check if we have this in cache already. 
    # 
    # Typically you clean up the request here, removing cookies you don't need, 
    # rewriting the request, etc. 

    set req.http.host = regsub(req.http.host, "v\.","\rms\."); 

    std.log("REWRITED TO"+req.http.host+" "+req.url); 



} 

sub vcl_backend_response { 
    # Happens after we have read the response headers from the backend. 
    # 
    # Here you clean the response headers, removing silly Set-Cookie headers 
    # and other mistakes your backend does. 
} 

sub vcl_deliver { 
    # Happens when we have all the pieces we need, and are about to send the 
    # response to the client. 
    # 
                   vcl 4.0; 

import std; 

# Default backend definition. Set this to point to your content server. 
backend default { 
    .host = "194.142.x.x"; 
    .port = "8008"; 
} 

sub vcl_recv { 

if (req.url ~ "(?i)\.(png|avi|mkv|mp4)(\?[a-z0-9]+)?$") { 
    unset req.http.Cookie; 
    } 
    # Happens before we check if we have this in cache already. 
    # 
    # Typically you clean up the request here, removing cookies you don't need, 
    # rewriting the request, etc. 

    set req.http.host = regsub(req.http.host, "v\.","\rms\."); 

    std.log("REWRITED TO"+req.http.host+" "+req.url); 



} 

sub vcl_backend_response { 
    # Happens after we have read the response headers from the backend. 
    # 
    # Here you clean the response headers, removing silly Set-Cookie headers 
    # and other mistakes your backend does. 
} 

sub vcl_deliver { 
    # Happens when we have all the pieces we need, and are about to send the 
    # response to the client. 
    # 

怎么过范围请求时间太长送达所以我们觉得它的原始服务器是打不被缓存。

+0

这里有没有足够的信息。这种缓慢请求的varnish日志条目是必要的。一般情况下,除非管道/通过请求,否则Varnish将要求从后端正常提取对象,并在出现所请求的字节范围时开始为客户端提供服务。 – lkarsten

回答

1

你能解决这个...吗?

我敢肯定块配置:

if (req.url ~ "(?i)\.(png|avi|mkv|mp4)(\?[a-z0-9]+)?$") { 
    unset req.http.Cookie; 
    } 
    # Happens before we check if we have this in cache already. 
    # 
    # Typically you clean up the request here, removing cookies you don't need, 
    # rewriting the request, etc. 

    set req.http.host = regsub(req.http.host, "v\.","\rms\."); 
    std.log("REWRITED TO"+req.http.host+" "+req.url); 

是放错了位置,需要在vcl_backend_response不vcl_recv