プロキシーの背後の Express
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 パッケージを使用して実装されます。詳細については、資料を参照してください。