4

非常に単純な Varnish Cache ESI テストでさえ機能しないという問題があります。
試行錯誤した後、私はここで尋ねると思いました。

基本的に、ESI ファイルは含まれません。インクルードせずにHTMLを返すだけです。

これが私のワニス開始コマンドです:

varnishd -f /etc/varnish/default.vcl -s malloc,128M -T 127.0.0.1:2000 -a 0.0.0.0:8080;

私がテストしているURLは次のとおりです。

http://vbox.local:8080/varnish-tests/test.php

私の vcl ルール:

1) デフォルト.vcl

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

<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

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

上記の vcl ルールのさまざまなバリエーションを試しました。
すべてが機能しません。どこが間違っているのかわかりませんか?

アドバイス/ヘルプをいただければ幸いです。

ありがとうございました。

4

4 に答える 4

5

問題は、現時点では Varnish と mod_deflate がうまく連携しないことです。

deflate.conf と deflate.load を削除すると問題が解決しました。

乾杯。

于 2011-04-01T06:10:15.570 に答える
1

Varnish 3.0 beta1 でテストしてみてください。その主な新機能の 1 つは、完全な圧縮のサポートです (つまり、ESI でも動作するようになりました)。

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

これにより、おそらく apache/php 圧縮処理設定の変更を避けることができます。

于 2011-05-28T20:23:18.237 に答える
0

最新のエラーを考えると、このブログ投稿が関連している可能性があります。

Varnish の特定のバージョンでは、gzip 圧縮されたコンテンツをうまく処理できないようです。gzip 圧縮を実行するように PHP を設定していますか? PHP をホストする Web サーバー ソフトウェアが gzip 圧縮を実行するように設定されていますか?

Varnish は、不適切な形式のコンテンツを窒息させることもありますが、ここではそうではないようです...

残念ながら、私は今アイデアがありません。

于 2011-04-01T06:09:58.443 に答える
0

Varnish 3.x の場合

vcl_fetch に、次を追加する必要がありました。

set beresp.do_esi = true;
于 2014-02-24T11:07:51.880 に答える