【问题标题】:Varnish ESI caching - remote url returns 404清漆 ESI 缓存 - 远程 url 返回 404
【发布时间】:2020-08-18 07:36:38
【问题描述】:

我正在尝试在我的本地设置上缓存 Varnish ESI。

我确实创建了一个名为 index.html 的示例 html 文件。

<html>
<body>

    <h1>Hello!!~~</h1>
    <esi:include src="http://noshitdebian.local/paa.txt"/>
    <esi:include src="footer.txt"/>
</body>
</html>

第一个 ESI 标记将来源到我的另一个本地服务器,而第二个 ESI 标记源在我的网络服务器中本地存在。

This is the response I got, 404 on the remote and successful for local

看起来清漆在定义的后端服务器上处理请求,这是日志。

https://pastebin.com/7t03A9nP

我的 ESI 清漆 VCL 代码。 https://pastebin.com/kaVmrXqw

如何告诉 varnish 在远程服务器上查找该资源?

【问题讨论】:

    标签: linux varnish varnish-vcl sysadmin varnish-4


    【解决方案1】:

    看起来清漆在定义的后端服务器上处理请求

    这就是 Varnish总是 所做的。使用带有 esi src 域的 URL 具有将 ESI 请求中的 Host 标头设置为域的效果,但不会创建新的后端。请求仅路由到您定义的后端。

    如何告诉 varnish 在远程服务器上查找该资源?

    定义您要使用的后端,在本例中使用命名丰富的主机noshitdebian.local。然后在 VCL 中编写一条规则,将请求路由到该后端,大概是当 Host 标头设置为该值时。

    【讨论】:

    • 是的,但是如果我的资源在我的 S3 存储桶上,我应该为它定义一个后端块吗?
    • @nejnej25 我不太了解 AWS,无法准确理解您所说的“我的 S3 存储桶上的资源”是什么意思。但是由于您必须定义一个后端来让 Varnish 将请求路由到那里,所以您必须有一种方法可以从您的“S3 存储桶上的资源”中创建一个后端。从您的示例来看,它显然是指定目标的域名,所以也许您可以在后端的 .host 字段中使用它。
    猜你喜欢
    • 2011-12-07
    • 2013-07-16
    • 1970-01-01
    • 2014-10-20
    • 2012-04-22
    • 2012-11-02
    • 2012-04-03
    • 1970-01-01
    • 2015-10-21
    相关资源
    最近更新 更多