web-dev-qa-db-ja.com

ロードバランサーを介したnginxプロキシパスリダイレクト

LVSを使用して負荷分散されたバックエンドWebサーバーがいくつかあります。これらのマシンには、ルーティング不可能な内部IPのみがあります。ロードバランサーは、外部IPを備えた唯一のマシンです。この設定はうまく機能します。画像提供用に別のウェブサーバーを追加したいのですが、それは負荷分散プールの一部にはなりません。負荷分散されたWebサーバーからイメージサーバーへのプロキシパスを使用して、応答をクライアントにリダイレクトすることは可能ですか?

クライアント->外部LB->内部Webサーバー->内部イメージサーバー

方程式からLBを削除するとプロキシパスが機能するようになりましたが、使用しようとするとうまくいきません。

1
Brian

LVSの代わりに、HAproxyを試すことができます。 httpモードでは、ドメイン名を処理する「Host」などのヘッダーを認識します。このようにして、静的ファイルを「内部イメージサーバー」に直接プロキシできます。

別の方法は、別の外部IPを要求し、異なる構成でLVSの2つのコピーを実行することです。1つは動的ファイル用、もう1つは静的ファイル用で、異なる外部IPにバインドします。

2
krogon

イメージをホストし、リンクをイメージにバインドすることになっているサーバーの新しい外部IPを取得します http://img.yourdomain.com/ なので、既存のアーキテクチャを複雑にすることはありません。それ以外の場合は、KTCPVSがあることがわかります: http://kb.linuxvirtualserver.org/wiki/KTCPVS_HTTP これはURLパターンルーティングをサポートすることになっています。

0
user237419

これを行うことで何を得ようとしていますか? Nginxはすでに静的メディアの提供に非常に優れており、そのメディアのキャッシュにも非常に優れています。静的コンテンツサーバーへの(元のWebサーバーを介した)プロキシ接続を行うと、冗長で(悪い種類)、ネットワークオーバーヘッドが追加されます。これは、トラフィックが配信されるためにnginxサーバーを介して戻る必要があるためです。

とにかくトラフィックはLVSボックス(en)を経由しているので、上記のポスターが言っているように、別のドメイン名で参照されているイメージサーバーに直接トラフィックを転送してみませんか。

追加のドメイン参照が本当に必要ない場合(検討する必要があります。ユーザー側からサイトの速度が向上します)、LVSに/ imagesのトラフィックをイメージサーバーに直接送信させると、レイヤー7ルーティングが可能になります。

要するに、Webサーバーから負荷を取り除こうとしている場合は、実際にWebサーバーから負荷を取り除く必要があります。プロキシを使用すると、これらのマシンのディスクスペースを節約できますが、リクエストを処理してトラフィックを渡す必要があるため、それほど多くはありません。

0
jerm