2016-10-18 5 views
0

おはよう。私はいくつかの助けが必要です、私はニスでヒット/ミスの反応を得ることができません。 私を助けてください..事前に感謝.. ここに私のdefault.vclの設定です。ワニス4:リモートキャッシュ

 backend default { 
     .host = "00.00.00.00"; 
     .port = "80"; 
     } 

     sub vcl_recv { 
      if (req.http.host == "www.example.com") { 
      unset req.http.cookie; 
      unset req.http.Vary; 
      } 
      else 
      { 
      return (pass); 
      } 
     } 

     sub vcl_backend_response { 
     set beresp.do_gzip = true; 
     unset beresp.http.Cache-Control; 
     set beresp.ttl = 1h; 
     set beresp.grace = 1w; 
     } 


     sub vcl_deliver { 
     if (obj.hits > 0) { 
     set resp.http.X-Cache = "HIT"; 
     } else { 
     set resp.http.X-Cache = "MISS"; 
     } 
     } 

答えて

2

あなたが宣言するだけのバックエンドは、あなたが正しいバックエンドのIPやDNSを宣言する必要があり、0.0.0.0です。

ワニスはリバースプロキシですが、ヘッダーに従わない:Host => IP http way。要求を転送する場所を明示的に宣言する必要があります。

+0

はい、私はそれだけのダミー/サンプルIP、それのcorrrect IPを持っているが、それでも私はX-キャッシュHIT/MISS応答 – rkevx21

+0

バックエンドのデフォルト{ .host =取得カント"marketics.ph"; .port = "80"; } AND req.http.host == "marketics.ph" – rkevx21

+0

リクエストがワニスを通過することは確実ですか?私がmarketics.phを開いたときに、Apacheがワニスではなく返答していることがわかります –

1

バックエンドポートは、ワニスがリスンする場所を指しています。ワニスは80でリスニングする必要があり、バックエンドのデフォルトはApacheが現在リストしているポートでなければなりません。あなたのVCLで は、それを変更します。

backend default { 
     .host = "127.0.0.1"; 
     .port = "82"; 
     } 

あなた/etc/varnish/varnish.paramsファイルは、ポートは80

VARNISH_LISTEN_PORT=80 

に設定しておく必要がありますし、あなたのhttp.confに、Apacheを設定する必要があります82で聞く。

Listen 0.0.0.0:82 

Apacheを再起動し、次にワニスを再起動します。これで、適切なトラフィックをApacheに適切にプロキシします。私が与えたIPは例であり、YMMVです。

適切な流れ:

[Internet] <-> (80)[Varnish] <-> (82)[Apache].