gpt4 book ai didi

php - 如何根据 cookie 值制作单独的缓存页面?

转载 作者:行者123 更新时间:2023-12-03 17:45:34 25 4
gpt4 key购买 nike

我想根据用户屏幕分辨率提供自适应图像尺寸。

我遇到了这个很棒的解决方案 Adaptive Images ,但此解决方案不适用于 Varnish 。

因为例如 - 如果带有移动设备的客户端将请求图像,那么图像将作为移动设备的小图像存储在 Varnish 缓存中。并且此图像稍后也将提供给桌面用户。

我认为,如果我能找到一种基于 cookie 值(adaptive images 脚本的一部分)分离缓存页面的方法,那么每个图像都将根据用户屏幕宽度进行保存。

因此,如果我没有错,那么我上面描述的糟糕情况将得到解决。

您能帮我为此创建正确的 vcl 代码吗?
1. 分离应仅应用于图像(jpg、gif、png)。
2. 它应该根据 cookie_a 的值分离每个缓存

谢谢

最佳答案

基本上你要做的是改变varnish存储数据的vcl_hash方法来使用cookie,只有当url是图像(jpg、gif、png)时。
为简单起见,假设 Varnish 将图像存储在键“image.jpg”中,您要做的就是告诉 Varnish 键是“image-[size].jpg”,其中 [size] 可以是cookie,图像大小或两者兼而有之。
要解决“仅适用于图像”问题,您必须执行类似的操作

if (req.url ~ '(jpg|gif|png)') {
// Change the hash here
}

考虑到这一点, here你可以找到一个很好的例子来说明如何做到这一点。
其他有用的网站:
  • vcl_hash ( Varnish 3)
  • Basic hashing
  • 关于php - 如何根据 cookie 值制作单独的缓存页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28031034/

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