Express アプリケーションをプロキシーの背後で実行する場合、(app.set() を使用して) アプリケーション変数 trust proxy
を次の表にリストされているいずれかの値に設定します。
アプリケーション変数 trust proxy
が設定されていない場合でもアプリケーションの実行は失敗しませんが、trust proxy
が構成されていない限り、プロキシーの IP アドレスを誤ってクライアント IP アドレスとして登録します。
型 | 値 |
---|---|
真偽値 |
|
IP アドレス |
信頼される IP アドレス、サブネット、または IP アドレスとサブネットの配列。次のリストに、事前構成されたサブネット名を示します。
以下のどの方法でも IP アドレスを設定できます。
IP アドレスまたはサブネットは、指定されると、アドレス決定プロセスから除外されます。アプリケーション・サーバーに最も近い信頼できない IP アドレスがクライアントの IP アドレスに決定されます。 |
数字 |
プロキシー・サーバーから |
関数 |
カスタムの信頼実装。実行内容を理解している場合にのみ、これを使用してください。
|
trust proxy
を有効にすると、次の3つの重要な変更が起こります。
req.hostname の値は、クライアントまたはプロキシーが設定できる X-Forwarded-Host
ヘッダーに設定された値から導き出されます。
X-Forwarded-Proto
は、https
と http
のどちらであるか、または無効な名前であるかをアプリケーションに通知するためにリバース・プロキシーによって設定できます。この値は、req.protocol に反映されます。
trust proxy
設定は、proxy-addr パッケージを使用して実装されます。詳細については、資料を参照してください。