當 Express 應用程式是在 Proxy 背後執行時,請使用 app.set(),將 trust proxy
應用程式變數設為下表列出的其中一值。
雖然未設定 trust proxy
應用程式變數時,應用程式並不會無法執行,但除非配置 trust proxy
,否則,它會將 Proxy 的 IP 位址登錄成錯誤的用戶端 IP 位址。
類型 | 值 |
---|---|
布林 |
若為 若為 |
IP 位址 |
要信任的 IP 位址、子網路,或是 IP 位址與子網路陣列。下列清單顯示預先配置的子網路名稱:
您可以採下列任何方式來設定 IP 位址:
若有指定,位址判定程序中會排除 IP 位址或子網路,且會將最接近應用程式伺服器的未授信 IP 位址判斷為用戶端的 IP 位址。 |
號碼 |
信任來自正面 Proxy 伺服器的第 |
函數 |
自訂信任實作。只有在您清楚自己要做什麼時,才能使用此項。
|
如果設定 false
trust proxy
以外的值,會造成三項重要的變更:
req.hostname 值會衍生自 X-Forwarded-Host
標頭中所設定的值,且該值可能由用戶端或 Proxy 所設定。
反向 Proxy 可能設定 X-Forwarded-Proto
,以告知應用程式它是 https
或 http
或甚至是無效的名稱。req.protocol 會反映此值。
會使用 proxy-addr 套件來實作 trust proxy
設定。如需相關資訊,請參閱其說明文件。