私はWebアプリケーションの依存関係の一部をキャッシュするためにVarnish-cacheを使用したいと考えていますが、私は社内のプロキシ設定の背後に止まっています。 Varnish-cacheに、プロキシ経由で他のサービスへのHTTP要求を行うように指示する方法はありますか?プロキシの背後でvarnish-cacheを使用する方法
感謝
サイモン
私はWebアプリケーションの依存関係の一部をキャッシュするためにVarnish-cacheを使用したいと考えていますが、私は社内のプロキシ設定の背後に止まっています。 Varnish-cacheに、プロキシ経由で他のサービスへのHTTP要求を行うように指示する方法はありますか?プロキシの背後でvarnish-cacheを使用する方法
感謝
サイモン
は、限り、あなたはプロキシとHTTPを話すことができるよう、あなたがやりたいことができます。
セットアップ例:
[back-end A] [back-end B]
| |
---[corporate proxy]---
|
[Varnish]
変更80からプロキシポート(例えば8080)にデフォルトのポート...
backend corp_proxy {
.host = "proxy.localnet";
.port = "8080";
}
...
sub vcl_recv {
...
/* check if back-end A or B and use proxy as backend */
if (req.http.host == "backend-a.example.com" || req.http.host == "backend-b.example.com") {
set req.backend = corp_proxy;
set req.http.X-Proxy-Pass = 'mypass';
}
...
}
あなたも(要求にカスタムヘッダーを設定することができますいくつかの静的なキーなど)。
ワニス4の場合、これは機能しません。ネットワークトレースを少し行うと、varnish v4が相対req.urlを実行しているように見えます。プロキシが絶対req.urlを必要としています 私はスプリットブレインDNSの世界にいるので、バックエンドは同じドメイン名ですフロントエンドのユーザーは(別の方法でresovles)を参照してください。したがって、req.url変数でreq.http.hostを使用して絶対URLを作成します。
sub vcl_recv {
# Setting backend hint
set req.backend_hint = varnish_backend;
if (req.url !~ "mydomain.com") {
set req.url ="http://" + req.http.host + req.url;
}
大変感謝!それはまさに私が探していたものです。 –
この設定は3.xで動作していますか? –
はい、設定例はバージョン3.xで動作します。 –