Squid 不必要地释放 CSS 文件

Squid 不必要地释放 CSS 文件

我的设置是让 Firefox 与 Web 服务器对话,并使用 Squid 作为缓存代理。

Firefox <--> Squid (ssl_bump) <--> Web 服务器

虽然图像(即使在 https 上)会被缓存,并且确实会看到缓存命中,但大多数 CSS 和 JavaScript 文件也会被缓存并释放:

1367165735.552 RELEASE -1 FFFFFFFF 0CF738871B9B86A15838CE1BE65BEE8E  200 1367165735        -1 1367265735 x-squid-internal/vary -1/0 GET https://9.123.122.180/common/js/dojo/1.6/dijit/form/Button.xd.js
1367165735.552 RELEASE 00 00000179 532661AE3C1B87904B52AC3FB1B9F971  200 1367165718 1333798649        -1 application/x-javascript 2495/2495 GET https://9.123.122.180/common/js/dojo/1.6/dijit/form/Button.xd.js
1367165735.552 SWAPOUT 00 00000192 128BF66F1EB8A67509CC774E3DFB50DC  200 1367165734 1333798649        -1 application/x-javascript 2495/2495 GET https://9.123.122.180/common/js/dojo/1.6/dijit/form/Button.xd.js
1367165737.268 RELEASE -1 FFFFFFFF 184B43B9627622DA2CC2415794961437  200 1367165737        -1 1367265737 x-squid-internal/vary -1/0 GET https://9.123.122.180/common/js/dojo/themes/tundra.css
1367165737.268 RELEASE 00 0000017D F5692CC660A0F4BA4FEDC211275BA0E4  200 1367165720 1366120055        -1 text/css 14723/14723 GET https://9.123.122.180/common/js/dojo/themes/tundra.css
1367165737.268 SWAPOUT 00 00000193 D1D0E32C07C74BF2D4F235EFEAC33DE1  200 1367165736 1366120055        -1 text/css 14723/14723 GET https://9.123.122.180/common/js/dojo/themes/tundra.css

我尝试使用配置文件中的开关,但似乎没有任何作用。

offline_mode on
vary_ignore_expire on
reply_header_access Last-Modified deny all
request_header_access If-Modified-Since deny all
request_header_access Cache-Control deny all

是否有其他标志/设置可以防止这些不必要的发布?我该如何进一步调试?

答案1

我临时做的是修改了 squid 的 src 目录中的 HttpHeader.cc,以对“Vary”标头视而不见。

原文如下:

  {"Vary", HDR_VARY, ftStr},       /* for now */

我的解决方法:

  {"Vary-junk", HDR_VARY, ftStr},       /* for now */

但确实,这是一个粗糙的黑客行为,除了临时测试外,完全不适合做任何事情。希望有更好的解决方法。

相关内容