Nginxサーバープールは、CDN +ロードバランサセットアップの背後にあるです。 CDNはHTTPの "read"リクエスト(GET、HEAD、OPTIONS)をキャッシュし、 "write"リクエスト(POST)をバイパスします。Nginxのレート制限と実際のIPモジュール
私はこのような構成でX-FORWARD-FORヘッダからクライアントのIPアドレスを取得するためにのreal_ipモジュールを使用しています:
set_real_ip_from <trusted_cidr1>
set_real_ip_from <trusted_cidr2>
...
real_ip_recursive on;
real_ip_header X-Forwarded-For;
それが働く確認することができます。しかし、私はまた、ロボットや攻撃を避けるために、クライアントごとの要求率を(私はすべてのIPは個別のクライアントであると仮定します)制限したいので、次のように、私はlimit_reqモジュールを使用しています:
http {
limit_req_zone $binary_remote_addr zone=perip:10m rate=10r/s;
location/{
limit_req zone=perip burst=5;
}
}
を私の質問は:$ binary_remote_addrは、私がreal_ipを設定した、または私が期待しているように内部的にこれを上書きしない、元のクライアントのIP、要求の実際の発信元を想定しますか?もしそうでなければ、それは確かに私に深刻な問題を引き起こすでしょう。
Nginxは十分にスマートだと思いますが、ドキュメンテーションで確認できず、実際の分散シナリオでこれをテストする機会がなかったら、以前のこれを経験したことが私には分かります。
ありがとうございます。