- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在使用 Varnish ESI 时遇到了一个奇怪的问题。
我网站上的每个页面都有一个 ESI 片段,用于输出(登录)用户的帐户信息。
看起来 Varnish 正在返回用户 session ESI 片段的缓存结果,除非浏览器发送 Cache-Control: no-cache/Pragma: no-cache(强制刷新),这是它从服务器请求 ESI 内容时。
我的 vcl_recv 包含绕过这个的规则:
if(req.url ~ "^/session-header") {
return(pass);
}
if(req.url ~ "^/session-header") {
return(hit_for_pass);
} else {
set beresp.ttl = 1h;
}
最佳答案
万一有人看到这个,找出问题所在。
原来后端正在设置 Etag,Varnish 用它来决定是否从服务器提供新的 ESI 片段(浏览器会在 If-None-Match 请求头中发送这个 Etag,除非它是强制刷新)。
我只是将这一行添加到 vcl_deliver 中,现在它就像一个魅力!
subl vcl_deliver {
...
unset resp.http.Etag;
...
}
关于caching - 为什么 Varnish 缓存 ESI 片段(当我告诉它不缓存时)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22597784/
我想将 ESI 包含或 eval 块的结果存储在 ESI 变量中。包含的内容超出了我的控制范围。其格式为 JSON。 我已经尝试了以下所有方法都无济于事。该变量最终为空字符串。 '' ''
lea 0x0(%esi),%esi 我相信它没有结果,只是填充空间。是这种情况吗? 最佳答案 它是一个 NOP。它将 %esi 和 0x0 的内容相加,并将结果放在 %esi 中。有人要么有一
我正在做家庭作业。我们得到了一个预编译的二进制文件,我们必须使用 gdb获取程序集转储、遍历数据结构、查看存储在内存中的值等,以便弄清楚二进制文件的作用。以下是来自函数调用的几行反汇编程序转储: 0x
我有一个缓存站点,其中有一个不应缓存的表单。我为此使用 ESI。提交表单后,我需要在我的 Controller 中获取 POST 参数。 Symfony 让我得到请求参数“表单”而不是真正的 POST
包含5个esi:include的页面,每个src都是一条具有相同参数的相同路径,例如'm.htm?p = 1'和'm.htm?p = 2',但是我使用了varnishlog并仅看到发生了1个esi请求
大家好。我在 Varnish 上使用 Edge Side Includes 来缓存静态 HTML shell,然后包含一些动态 HTML 和 JSON 对象。 HTML 的 ESI 已正确包含,但 J
使用 ESI 是一种好的做法还是一种较旧的技术?有没有更好的选择。我熟悉 CDN 和缓存服务器的使用,但此 ESI 通常用于不仅仅加载前端的应用程序。 最佳答案 ESI 在 CDN 上下文之外相当不为
我正在计划我的缓存策略并深入研究 ESI看看它是否符合我的需求。 今天出现了这些问题: 每个包含是串行执行还是并行执行?假设我有 5 个:{% render '...' with {}, {'stan
说明 下面列出了当前在 PCRE 中可能使用的修正符。括号中是这些修正符的内部 PCRE 名。修正符中的空格和换行被忽略,其它字符会导致错误。 i (PCRE_CASELESS) 如果设定此修正符
这可能是不可能的,如果是这种情况,那么我将不得不寻找其他解决方案,所以如果无法完成,请告诉我。 我知道我可以获得 1=master 或 2=sub-request 的请求类型,但是有没有办法检测请求是
我正在使用Liip Cache Control bundle处理项目中的缓存。通过使用此捆绑包,您可以像这样配置缓存: liip_cache_control: rules: -
我在使用 Varnish ESI(边缘包含)时遇到问题:有时使用 ESI 的部分会显示奇怪的字符,如下图所示: 我该如何解决这个问题?有趣的是,有时会出现此问题,但有时不会。 最佳答案 这看起来像是
我在设置 Varnish 来正确处理 ESI 包含的子请求的 session cookie 时遇到问题。 背景,SSCCE 三个文件:index.php、navigation.php 和 footer
汇编器中 EDI 和 ESI 寄存器的实际用途和用途是什么? 我知道它们用于字符串操作是为了一件事。 谁能举个例子吗? 最佳答案 SI = 来源索引 DI = 目的地索引 正如其他人所指出的,它们对字
我有以下配置: varnish (80) nginx (8080) php-fpm (9000) (使用 Apache 和 mod_php 的行为相同)我的 Varnish 配置: backend
我想知道是否存在类似私有(private) ESI 片段的东西。在 the docs我读了: “设置共享的最大年龄 - 这也将响应标记为公开” “一旦您开始使用 ESI,请记住始终使用 s-maxag
我正在设计一个与 Symfony2 博客具有相同结构的项目。 我的家显示文章并有一个侧边栏,其中有登录链接,或者如果我们登录,则链接到我们的帐户。 我的侧边栏是一个 ESI,我的问题是:如果我在主页上
目前正在尝试将 Varnish 缓存系统的 ESI 包含功能与 php 项目一起使用。在我的场景中,我需要访问 esi 标记内的 php 变量。类似于以下... This article was r
我有一个用 Varnish 缓存的 PHP 页面:http://categories.php?name=NAME . 它有一些 ESI 脚本,例如: 所有页面都有相似的页眉、页脚、侧边栏,所以我在进
我有一个电子商务应用程序,我尝试为其设置缓存 - 最初通过 Symfony2 反向代理,但最终通过生产中的 Varnish。我在 Apache2 上使用 Symfony 2.1.8。 我的问题是,当缓
我是一名优秀的程序员,十分优秀!