私は1つのドメインに複数のサイトをプロキシングするためにngingの背後にワニス3を使用しています。 基本的な設定はうまくいきますが、ファイル名が既にキャッシュに存在する場合は、間違ったファイルを処理するニスに問題があります。 は基本的に私は私のdefault.vclで行うすべてはこれです:私は今/foo1/index.htmlを呼び出す場合ワニスは間違ったファイルを提供します
if(req.url ~ "^/foo1") {
set req.backend = foo1;
set req.url = regsub(req.url, "^/foo1/", "/");
}
else if(req.url ~ "^/foo2") {
set req.backend = foo2;
set req.url = regsub(req.url, "^/foo2/", "/");
}
、/foo2/index.htmlは、同じファイルを提供します。ワニスの再起動と/foo2/index.htmlの呼び出し後、/foo1/index.htmlはfoo2のindex.htmlを提供します。
11 VCL_call c hash
11 Hash c /index.html
11 Hash c mydomain
私はこの問題を解決:私の知る限り、これは使用したバックエンドを尊重するだけで(短縮後の)URLやドメインいないハッシュの作成に問題があるがわかったとして
より良い、より便利な方法がなければならない、私は確信しているだけでなく、バックエンドを使用するために私のvcl_hashを変更することによって、今のところ:
sub vcl_hash {
hash_data(req.url);
hash_data(req.backend);
}
どれヒントをいただければ幸いです、どうもありがとうございました!
ありがとうございます! 2番目のアプローチは見た目が良く、うまく動作し、テストされました! – deveth0