【问题标题】:varnish don't resolve ESI in my localhost清漆不解析我的本地主机中的 ESI
【发布时间】:2011-10-31 11:19:50
【问题描述】:

varnish 无法在我的 localhost 中解析 ESI:

我与 apache 中的其他用户有类似的配置,但我发送/获取以下标头:

Server  Apache/2.2.21 (Debian)
X-Powered-By    PHP/5.3.8-2
Content-Encoding    gzip
Edge-Control    cache-maxage=31536000s
Cache-Control   public, max-age=31536000
Pragma  public
Expires Tue, 30 Oct 2012 11:41:15 GMT
ProcessID   3918
Etag    c2e6665981c6441ab860d12a6853a002
Vary    Accept-Encoding
Content-Type    text/html; charset=UTF-8
Content-Length  4193
Date    Mon, 31 Oct 2011 10:40:54 GMT
X-Varnish   630755530
Age 0
Via 1.1 varnish
Request Headersview source
Host    i.host.com
User-Agent  Mozilla/5.0 (X11; Linux x86_64; rv:7.0.1) Gecko/20100101 Firefox/7.0.1 Iceweasel/7.0.1
Accept  text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language en-us,en;q=0.5
Accept-Encoding gzip, deflate
Accept-Charset  ISO-8859-1,utf-8;q=0.7,*;q=0.7
Connection  keep-alive
Cookie  OAX=1I6M006JYzwABwNj; __utma=164510763.315921951.1317626740.1319722611.1319795071.39; __utmz=164510763.1317626740.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); __utma=229641156.678788339.1317628577.1320057939.1320060143.19; __utmz=229641156.1317628577.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); lang=es; __utmc=229641156; __utmb=229641156.4.10.1320060143
If-None-Match   c2e6665981c6441ab860d12a6853a002
Cache-Control   max-age=0

其他有效的用户示例:

Server  Apache/2.2.4 (Win32) PHP/5.3.5
X-Powered-By    PHP/5.3.5
Set-Cookie  lang=es; expires=Mon, 31-Oct-2011 11:46:01 GMT; path=/
Edge-control    cache-maxage=31536000s
Cache-Control   public, max-age=31536000
Pragma  public
Expires Tue, 30 Oct 2012 10:46:01 GMT
ProcessID   3824
Etag    f9dcd4b1ec3f40e6763e80a3ba195de3
Content-Type    text/html; charset=UTF-8
Transfer-Encoding   chunked
Date    Mon, 31 Oct 2011 10:46:01 GMT
X-Varnish   630755925
Age 0
Via 1.1 varnish
Connection  keep-alive
Cabeceras de la peticiónver fuente
Host    t.host.com
User-Agent  Mozilla/5.0 (Windows NT 5.1; rv:5.0) Gecko/20100101 Firefox/5.0
Accept  text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language es-es,es;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding gzip, deflate
Accept-Charset  ISO-8859-1,utf-8;q=0.7,*;q=0.7
Connection  keep-alive
Cookie  OAX=1I6M001BiwUAB0EE; __utma=164510763.1374034467.1296142874.1319189845.1319204625.107; __utmz=164510763.1319204625.107.79.utmcsr=tamara.eitb.com|utmccn=(referral)|utmcmd=referral|utmcct=/eu/eguraldia/eskia/; __utma=261580168.2132154740.1302611206.1319197586.1320057948.90; __utmz=261580168.1302611206.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); lang=es; __utmb=261580168.1.10.1320057948; __utmc=261580168

我不知道为什么我会从 varnish 收到不同的标头...

我明白了:

Content-Encoding    gzip
Vary    Accept-Encoding

为什么我得到这个标题而其他用户没有???

两者都开启了 mod_deflate...

【问题讨论】:

    标签: apache http-headers gzip varnish


    【解决方案1】:

    为了让用户代理 Varnish 正确处理请求,您将同时获得 Content-Encoding 和 Vary。虽然 Content-Encoding 告诉用户代理 Vanish 页面内容以 zip 格式(在您的情况下为 gzip)编码,但标题 Vary 告诉,特别是 Varnish 来缓存页面的两个版本,无论是否使用 gzip 压缩。 如果后端支持压缩编码,它可以提供带压缩的版本(gzip 或 deflate),也可以提供不带任何压缩的版本(例如 text/html)。

    但是,要在清漆中启用 ESI 处理,请使用 esi; vcl 文件上的命令。有关更多信息,请参阅此page

    【讨论】:

    • 我是开发人员,我无法访问 varnish 服务器 :( 系统管理员帮不了我,说要在客户端(我这边)修复它,但我不知道为什么我会得到这个headers 和其他 win 用户没有 :(
    猜你喜欢
    • 1970-01-01
    • 2012-04-22
    • 2013-07-16
    • 2012-11-02
    • 2011-05-29
    • 2023-04-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-21
    相关资源
    最近更新 更多