web-dev-qa-db-ja.com

Nginxによるトラフィックのミラーリング

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

つまり、サーバーAとB、およびN(nginx)をWebサーバーとして使用しています。

N /リソースへのすべてのトラフィック-> AとBの両方にリダイレクト

出来ますか?

16
Agus

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;
}
14
Slack Undertow

Nginx(1.13.4)の新機能は次のとおりです。 http://nginx.org/en/docs/http/ngx_http_mirror_module.html#mirror

Ngx_http_mirror_moduleモジュール(1.13.4)は、バックグラウンドミラーサブリクエストを作成することにより、元のリクエストのミラーリングを実装します。ミラーサブリクエストへの応答は無視されます。

3
BLiN

[〜#〜] readme [〜#〜] に基づいて、GORが問題の解決に役立つと思われます。

今まで使ったことはなく、今週偶然見つけたので、頑張ってね!

2
Marcel

nGINXでリクエストをミラーリングすることはできませんが、リクエストは変数として利用できます。ただし、Luaスクリプトを使用して、その変数をサブリクエストとしてサードパーティのサーバーに送信できます。 http://nginx.org/en/docs/http/ngx_http_core_module.html#var_request

1

掘って掘った後、私は解決策を見つけました。あなたはそれをここで見ることができます 実際のトラフィックテストのためにリクエストをコピーして別のnginxサーバーに配信します @scari

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

それが役に立てば幸い、
リロン

0
Liron