2017-07-14 3 views
0

リバースプロキシキャッシングとロードバランサとしてワニス4.0.3を使用しています。
/api/v1/で始まるリンク、またはそのリンクにfeedが含まれているリンクのワニスキャッシュを避け、バックエンドサーバーからの要求を直接処理したいと考えています。 私が行っているこの:特定の単語のURLをキャッシュしないようにする

 
sub vcl_recv { 
    if ((req.url ~ "^/api/v1/" || req.url ~ "feed") && 
     req.http.host ~ "api.example.com") { 
     set req.backend_hint = apis.backend(); 
    } 

しかし、アクセスログに基づいて、それはバックエンドからの最初の要求を提供しており、それが直接、ワニスから新しい要求を提供しています!私は何か悪いことをしましたか?それとも私は何かする必要がありますか?

答えて

1

それは次のようになります。

sub vcl_recv { 
    if ((req.url ~ "^/api/v1/" || req.url ~ "feed") 
     && req.http.host == "api.example.com") { 
     return (pass); 
    } 
} 

return (pass)は、一致する要求のためのモードを渡すためにニスを切り替えます。パスモードでは、ワニスは結果をキャッシュに入れず、キャッシュから配信もしません(常にバックエンドに話します)。

req.http.hostの種類のマイクロ最適化は、==演算子を使用しています。この場合、正規表現マッチングは本当に必要ありません。

関連する問題