Nginxを使用したトラフィックのミラーリング


16

サーバー/リソースへのトラフィックを複製/ミラーリングする必要があります。

つまり、WebサーバーとしてサーバーAとBとN(nginx)があります。

N / resourceに向かうすべてのトラフィック-> AとBの両方にリダイレクト

出来ますか?


2
おそらくこれはしたくないでしょう。あなたは本当に何をしようとしているのですか?
マイケルハンプトン

1
私はそれを本当にする必要があります
アグス

2
ユースケースがあります。実稼働インフラストラクチャが使用するサーバーにデータをプッシュするクライアントがあります。さらに開発するには、開発サーバーにプッシュされたまったく同じデータが必要です。クライアントは、1つのエンドポイントにのみデータを送信できます。理由は聞かないでください、わかりません。

1
ああ、トラフィックを複製する必要があります。つまり、traficcはAによって処理されますが、Bはオフラインプロセスを受信することを意味します
Agus

2
私は私を助けた答えをこの質問の別のバージョンが見つかりました:serverfault.com/a/515531/175380は基本的には、あなたがにアップミラー化する場所を設定post_actionディレクティブ。これは、本番マシンが要求を満たした後に実行されます。
アダムルーケンズ

回答:


14

Nginxにhttpミラーモジュールが追加されました。ドキュメントはhttps://nginx.org/en/docs/http/ngx_http_mirror_module.htmlにあります

ドキュメントの構成例:

location / {
    mirror /mirror;
    proxy_pass http://backend;
}

location /mirror {
    internal;
    proxy_pass http://test_backend$request_uri;
}

ホストの1つがダウンしている場合でもミラーを使用できる方法はありますか。そのためのユースケースがあります。
サガルカラブ


2

READMEに基づいてに GORがあなたの問題を解決するのを助けることができるようです。

私はこれを一度も使用したことがないので、今週はつまずいたので、幸運を祈ります!


GORを使用すると、http 200で承認されるだけです。そのため、クライアントが送信しているものに対して実行する応答オブジェクトまたは検証がある場合、これが彼にとって有効であるとは思いません。私が知る限り、Gorを初めて使用する限り、出力セグメントの1つから結果オブジェクトを渡すことはできません。
パトリックウォーカー

現在GORをテストしていますが、いくつかの問題があります。次のようなヘッダーを解釈します:Location:// newpath GET // newpathなどのリクエストを生成します。ゆるい元のヘッダー(ホストユーザーエージェントなどを含む)をリダイレクトします。別のツールに移行しています。
Aalexガビ


0

掘り下げた後、解決策を見つけました。ここで確認できます。実際のトラフィックテストのために、別のnginxサーバーにリクエストをコピーして配信します。 @ scariによる

他の人の検索を容易にするためにここで言及すべきだと思いました。私のセットアップでは、uwsgiを使用しませんでした-代わりに、すべての着信要求を追加のサーバー(既に負荷分散されたバックボーンサー​​バーに加えて)に複製したかったのです。

それが役立つことを願って、
リロン

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.