php - Varnish ESI : strange characters

标签 php varnish esi

我在使用 Varnish ESI(边缘包含)时遇到问题:有时使用 ESI 的部分会显示奇怪的字符,如下图所示:

The part with ESI sometimes displays strange characters

我该如何解决这个问题?有趣的是,有时会出现此问题,但有时不会。

最佳答案

这看起来像是 Varnish 中 gzip 的一个奇怪错误。如果您通过 ESI 获得 gzipped 块并且它不在缓存中(MISS),您会得到这个奇怪的符号。如果您从缓存中获取此块,则一切正常。解决方案是为内部路由禁用 gzip:

if (req.url ~ "/_internal") {
    # Telling ESI that we do not support gzip
    remove req.http.Accept-Encoding;

.....

关于php - Varnish ESI : strange characters,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13364410/

相关文章:

Symfony2、Varnish 和 ESI 导致奇怪的行为

php - 什么时候应该使用存储过程或函数?

php - 执行查询时出错

apache - 如何将 REMOTE_ADDR 设置为 HTTP_X_REAL_IP?

tomcat - Nginx + Varnish 4 对所有请求返回 200 空响应

http - Varnish 和 ESI HTTP AUTH

php - 使用 PHP MySql 从我的数据库中选择日期,无需秒数

php - 使用 jQuery 和 PHP 减少 MySQL 查询量

caching - Varnish 和 Google Analytics