コンテンツにスキップ

プロキシとロードバランサーの設定

プロキシとクライアントの IP アドレス

Section titled “プロキシとクライアントの IP アドレス ”

プロキシの背後にある場合、x-forwarded-for ヘッダーを自動的に使用してクライアントの IP アドレスを判定します。

ロードバランサーを前段に置かずにサーバーを公開している場合は、AIKIDO_TRUST_PROXY 環境変数を false に設定し、正しい IP アドレスが使用されるようにしてください。そうしないと、上記のヘッダーを付加することで誰かが IP アドレスを偽装し、レート制限を回避できてしまう可能性があります。

クライアントの IP アドレスを判定するために別のヘッダーを使用する必要がある場合は、AIKIDO_CLIENT_IP_HEADER 環境変数にそのヘッダー名を設定できます。これによりデフォルトの x-forwarded-for ヘッダーが上書きされます。

Terminal window
# Example for DigitalOcean App Platform
AIKIDO_CLIENT_IP_HEADER=do-connecting-ip node app.js

レート制限とロードバランサー

Section titled “レート制限とロードバランサー ”

デフォルトでは、各 Zen インスタンスが独自のレート制限カウンターを保持します。つまり、アプリケーションに3つのインスタンスがあり、レート制限を1分あたり10回に設定した場合、理論上は顧客が30リクエスト(サーバーごとに10リクエスト)を送信できることになります。

ラウンドロビン方式のロードバランシングの場合、Aikido はインスタンス数に基づいてレート制限を計算できます。上記の例では、顧客が送信できる最大リクエスト数は設定通りの10リクエストになります。

このオプションは、特定の Zen アプリを見ているときの「Routes」タブの「Advanced Options」の下にあります。

インスタンスベースまたは分散型のレート制限設定オプション。インスタンスベースが選択されている状態。

ASP.NET Core は、追加設定なしでは x-forwarded-for を自動的に取得しません。詳細は Microsoft のドキュメントをご確認ください。