Express hinter Proxies
Wenn Sie eine Express-App hinter einem Reverse Proxy ausführen, können einige der Express-APIs andere Werte als erwartet zurückgeben. Um dies anzupassen die Einstellung trust proxy kann verwendet werden, um Informationen auszublenden, die vom Reverse Proxy in den Express API bereitgestellt werden. Das häufigste Problem sind Express-APIs, die die IP-Adresse des Clients offenlegen, statt dessen eine interne IP-Adresse des Reverse Proxy anzeigen.
Note
Bei der Konfiguration der trust proxy Einstellung ist es wichtig, das genaue Setup des
Reverse Proxy zu verstehen. Da diese Einstellung den in der Anfrage angegebenen Werten vertrauen wird Es ist wichtig, dass
die Kombination der Einstellung in Express mit der Funktionsweise des Reverse Proxy übereinstimmt.
Die Anwendungseinstellung trust proxy kann auf einen der in der folgenden Tabelle aufgelisteten Werte gesetzt werden.
| Typ | Wert |
|---|---|
| Boolean | Wenn Falls „falsch“ die App als direkt gegenüber dem Client verstanden wird und die IP-Adresse des Clients von „req.socket.remoteAddress“ abgeleitet wird. Dies ist die Standardeinstellung. Wenn Sie auf |
| IP-Adressen | Eine IP-Adresse, ein Subnetz oder ein Array von IP-Adressen und Subnetzen, die darauf vertrauen, dass es sich um einen Reverse Proxy handelt. Die folgende Liste zeigt die vorkonfigurierten Subnetznamen an:
Sie können IP-Adressen auf jede der folgenden Arten festlegen: Wenn angegeben, werden die IP-Adressen oder Subnetze vom Prozess der Adressermittlung ausgeschlossen und die dem Anwendungsserver nächstgelegene nicht vertrauenswürdige IP-Adresse wird als IP-Adresse des Clients ermittelt. Dies funktioniert indem überprüft wird, ob |
| Nummer | Benutzen Sie die Adresse, die höchstens Bei der Verwendung dieser Einstellung ist es wichtig sicherzustellen, dass es keine Multiple gibt, verschiedene Pfade zur Express-Anwendung, so dass der Client kleiner sein kann als die konfigurierte Anzahl von Hops, die entfernt sind andernfalls kann es möglich sein, dass der Kunde irgendeinen Wert angibt. |
| Funktion | Benutzerdefinierte Vertrauens-Implementierung. |
Das Aktivieren von trust proxy hat folgende Auswirkungen:
Der Wert von req.hostname wird vom Wert abgeleitet, der im
X-Forwarded-HostHeader gesetzt wurde , die vom Client oder vom Proxy gesetzt werden kann.X-Forwarded-Protokann vom Reverse Proxy gesetzt werden, um der App mitzuteilen, ob eshttpsoderhttpoder sogar ein ungültiger Name ist. Dieser Wert wird von [req.protocol]reflektiert (/en/api#req.protocol).Die Werte req.ip und req.ips werden auf der Basis der Socket-Adresse und des
X-Forwarded-ForHeaders gefüllt beginnend an der ersten nicht vertrauenswürdigen Adresse.
Die trust proxy Einstellung ist mit dem proxy-addr Paket implementiert. Weitere Informationen finden Sie in der Dokumentation.