gpt4 book ai didi

Varnish 返回(获取/交付)与分块编码

转载 作者:行者123 更新时间:2023-12-03 17:46:20 27 4
gpt4 key购买 nike

我正在尝试将 Varnish 缓存响应分块...(有可能,对吧?)

我有以下情况:

1-缓存很干净,可以使用(服务 Varnish 重新启动)

2-首次访问www.mywebsite.com/page

First time access headers

(不返回内容长度,并且存在分块,太棒了!)

3-下次访问该页面(如简单重新加载)时,它将被缓存..现在我得到了:

2+ time access headers

(现在我们有内容长度...这意味着没有分块:(不好!)

阅读了一些Varnish文档/博客(以及此文件:http://book.varnish-software.com/4.0/chapters/VCL_Basics.html)后,看起来好像有两个“最后”返回:返回(获取)返回(交付)

当强制返回(获取)时,分块编码有效……但是这也意味着请求将不会被缓存,对吗?虽然返回(传递),但正确缓存,但添加了内容长度 header 。

我尝试将这些添加到我的default.vcl文件中:

set beresp.do_esi = true; (at vcl_backend_response stage)


unset beresp.http.content-length; (at different stages, without success)

所以..如何使Varnish缓存与Transfer-Encoding:分块使用?

感谢您的关注!

最佳答案

您是否有理由将其分块发送?对于提前不知道内容长度的情况,块传输编码是一种笨拙的解决方法。实际上,这里发生的是Varnish能够在第一次缓存压缩后的内容时计算其长度,因此不必使用变通方法!请放心,在这种情况下您不会错过任何性能提升。

关于 Varnish 返回(获取/交付)与分块编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39380111/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com