gpt4 book ai didi

http - Varnish:使缓存依赖于 X-Forwarded-Proto https

转载 作者:可可西里 更新时间:2023-11-01 15:26:55 34 4
gpt4 key购买 nike

以下情况:服务器上有用于缓存的 apache 和 Varnish。 SSL 由亚马逊负载均衡器处理。如果使用 https 请求页面,则 http header “X-Forwarded-Proto”设置为“https”。页面有时不同(例如,在使用安全连接时必须使用 https 获取链接/图像)

如果 X-Forwarded-Proto header 不同,我如何告诉 Varnish 页面不同?就像现在一样,首先访问的任何内容都会被缓存并为 http 和 https 提供服务!

最佳答案

我想,您想要的是拥有相同 URI 的不同缓存版本,使用自定义 vcl_hash 非常容易:

sub vcl_hash {
# ...
if (req.http.X-Forwarded-Proto &&
req.url !~ "(?i)\.(png|gif|jpeg|jpg|ico|gz|tgz|bz2|tbz|mp3|ogg|zip|rar|otf|ttf|eot|woff|svg|pdf)$") {
hash_data(req.http.X-Forwarded-Proto);
}
# ...
}

在此示例中,静态文件仅缓存一次,其余文件(html、js、css..)缓存在 2 个不同的版本中(假设 X-Forwarded-Proto 仅采用两个值)。

您可以在 https://github.com/NITEMAN/varnish-bites/blob/master/varnish3/drupal-base.vcl 上看到更广泛背景下的示例

关于http - Varnish:使缓存依赖于 X-Forwarded-Proto https,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20747153/

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