2016-08-04 10 views
0

一時的な重い負荷のために、自分のウェブサイトの1つのキャッシュとしてワニスを設定したいと思います。apache仮想ホストの前にキャッシュとして塗りつぶし

メインのウェブサイトをキャッシュする必要があるワニスでいくつかの仮想マシンをセットアップしました。 私のメインサーバはいくつかのウェブサイトをホストしているので、apacheサーバは仮想ホストサーバとして構成されています。

私はIPアドレスの代わりにdefault.vclにメインWebサイトのdomainnameを定義しました。ワニスは正しいApache仮想ホストに要求を正しく伝播することを望んでいました。 しかし、それはちょうどIPアドレスを使用して、私のメインのWebサイトのIPアドレスにhttp要求を送信するときに表示されるApacheのデフォルトページをキャッシュしているようです。

ワニスを構成してIPアドレスではなく正しいURLを使用してバックエンドを呼び出す方法はありますか?

私のワニスの設定は次のようになり

:私はニスのインスタンスを必要とするので

backend default{ 
    .host = "my.ip"; 
    .port = "80"; 
} 

backend default{ 
    .host = "www.myvhost.com"; 
    .port = "80"; 
} 

の代わりhttp://www1.myvhost.comhttp://www2.myvhost.com ...メインサーバhttp://www.myvhost.com ではなくhttp://myip:80/をキャッシュします

ご協力ありがとうございました

答えて

0

あなたは、おそらく私のメインサーバがApacheサーバをリバースプロキシであることを を設定されているいくつかのウェブサイトをホストとしてワニスは、リバースプロキシではないapacheの

あるEAN。あなたのサーバー上で複数のIPを持っている場合

あなたはexceptsで、 https://github.com/mattiasgeniar/varnish-4.0-configuration-templates/blob/master/default.vcl

あなたのすべてのトラフィックは、すべてのバーチャルホスト用ワニスに指すように起こっているあなたのdefault.vclのバックエンド定義でホスト名を設定することができます。

私はあなたが探しているものは、単一のドメインのための軽いクエリですと思います。これは、ホスト上でフィルタリングすることで実現できます。

sub vcl_recv { 
    if (req.http.host ~ "(www\.)?yourdomain\.com") { 
    return(pass); 
    } 
} 

ないドメイン上で直接参照することなく、バックエンドに渡されるすべてのトラフィックは

+0

いいえ、メインサーバはApacheベース、そして、それはいくつかのウェブサイトを提供するための仮想プロキシ構成を有しています。 一時的な(1週末)過負荷に対処できるように、複数のワニスを別のコンピュータに簡単なキャッシュとして配置したいと考えています。 しかし、私は正しいウェブサイト、つまり、Apache仮想ホストの1つをキャッシュするためにワニスが必要です。 ワニスはをキャッシュしないでください。 redroom

+0

Apacheはリバースプロキシではなくvhostによって複数のWebサイトを配信しています。 RPはあなたのapacheの前にあります。おそらくあなたが設定ファイルを投稿した場合、それはより明確になります – Sylwit

+0

はい、あなたはそうです、私はそれのためのvhostを意味しました、それはまた、リバースプロキシを行いますが、キャッシュされる必要はありません。私はメインの投稿に私の設定を追加しました...ありがとう – redroom

関連する問題