首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Varnish缓存将不会包含ESI

Varnish缓存将不会包含ESI
EN

Stack Overflow用户
提问于 2011-04-01 12:27:13
回答 4查看 5.1K关注 0票数 4

即使是最简单的Varnish Cache ESI测试,我也遇到了问题。

经过一次又一次的尝试,我想我会在这里问。

基本上它不会包含ESI文件。它只是返回HTML,而没有执行include。

下面是我的varnish start命令:

代码语言:javascript
复制
varnishd -f /etc/varnish/default.vcl -s malloc,128M -T 127.0.0.1:2000 -a 0.0.0.0:8080;

下面是我正在测试的URL:

代码语言:javascript
复制
http://vbox.local:8080/varnish-tests/test.php

我的vcl规则:

1) default.vcl

代码语言:javascript
复制
backend default {  
.host = "127.0.0.1";  
.port = "80";  
}  

sub vcl_fetch {  

  if (req.url ~ "test.php") {  
      esi;  /* Do ESI processing */  
      set beresp.ttl = 24h;  
  } elseif (req.url ~ "esi_1.php") {  
      set beresp.ttl = 1m;  
  }  
return(deliver);  
}  

我的示例测试esi代码

2) test.php

代码语言:javascript
复制
<html>  
<head>  

<?php echo "Time 1: ".time(); ?>  

<br />  

The time 2 is: <esi:include src="/varnish-tests/esi_1.php"/> at this very moment.  

</body>  
</html>  

esi的php包括

3) esi_1.php

代码语言:javascript
复制
<?php
echo "Time 2: ".time();  
?>

我已经尝试了上述vcl规则的许多变体。

并不是所有的都能工作。就是看不出我哪里错了?

任何建议/帮助都非常感谢。

谢谢。

EN

回答 4

Stack Overflow用户

发布于 2011-04-01 14:10:16

问题是,Varnish和mod_deflate目前不能很好地协同工作。

删除deflate.conf和deflate.load解决了此问题。

干杯。

票数 5
EN

Stack Overflow用户

发布于 2011-05-29 04:23:18

尝试使用Varnish3.0 beta1进行测试。它的主要新特性之一是完全压缩支持(这意味着它现在也可以与ESI一起使用):

https://www.varnish-software.com/blog/varnish-cache-30-beta-1-out

这样,您就可以避免更改apache/php压缩处理设置。

票数 1
EN

Stack Overflow用户

发布于 2011-04-01 14:09:58

鉴于最新的错误,this blog post may be relevant

似乎某些版本的Varnish不能很好地处理gzipped压缩内容。你有没有设置PHP来执行gzip压缩?您是否已将托管PHP的web服务器软件设置为执行gzip压缩?

清漆也可能会阻塞格式不佳的内容,尽管在这里似乎不太可能...

不幸的是,我现在没有想法了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5509162

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档