什么是清漆中的管道模式和传递模式

Posted

技术标签:

【中文标题】什么是清漆中的管道模式和传递模式【英文标题】:What is Pipe mode and pass mode in varnish 【发布时间】:2014-04-25 05:31:27 【问题描述】:

什么是清漆缓存中的管道模式和传递模式...我一直在尝试参考此链接来了解清漆。我有点理解通过,但我想要一个更好的解释.. http://spin.atomicobject.com/2013/01/16/speed-up-website-varnish/

【问题讨论】:

【参考方案1】:

传递模式在 Varnish 中很常见,它只是告诉 Varnish 将请求传递给后端,而不是尝试从缓存中提供它。这用于不应缓存的动态页面。示例:

sub vcl_recv 
    if (req.url ~ "^/myprofile") 
        return (pass)
    

管道模式完全不同,很少使用。如果要流式传输对象,例如视频,则需要使用管道来避免超时。使用pipe 意味着 Varnish 停止检查每个请求,而只是将字节直接发送到后端。使用管道时有多个陷阱,因此请务必查看 Varnish 文档中的 using pipe。

例子:

sub vcl_recv 
    if (req.url ~ "^/video/stream/") 
        return (pipe)
    


sub vcl_pipe 
    # http://www.varnish-cache.org/ticket/451
    # This forces every pipe request to be the first one.
    set bereq.http.connection = "close";

【讨论】:

感谢您的解释。真的帮了我很多。

以上是关于什么是清漆中的管道模式和传递模式的主要内容,如果未能解决你的问题,请参考以下文章

为什么应该在业务层实现管道模式,而不用ASP.NET Core Middleware实现 | 2点原因和实现方式...

通过管道搜索模式到 Sed 中删除文件中的行

设计模式之责任链模式

IO中的装饰器模式

前端设计模式之责任链模式

Tomcat中管道