Express- und Node.js-Schulungen von StrongLoop

Diese Übersetzung zur Verfügung gestellt von StrongLoop / IBM.

Dieses Dokument kann im Vergleich zur englischen Dokumentation veraltet sein. Aktuelle Updates finden Sie in der englischen Dokumentation.

Express hinter Proxys

Bei der Ausführung einer Express-Anwendung hinter einem Proxy legen Sie die Anwendungsvariable trust proxy (mithilfe von app.set()) auf einen der in der folgenden Tabelle enthaltenen Werte fest:

Auch wenn die Anwendungsausführung nicht fehlschlägt, wenn die Anwendungsvariable trust proxy nicht festgelegt wurde, wird die IP-Adresse des Proxys nicht ordnungsgemäß als Client-IP-Adresse eingetragen, es sei denn, trust proxy wurde konfiguriert.

TypWert
Boolesch

Wenn true angegeben wird, wird die IP-Adresse des Clients als der äußerst rechte Eintrag im Header X-Forwarded-* interpretiert. Wenn false angegeben wird, wird die Anwendung als direkte Verbindung zum Internet gesehen. Die IP-Adresse des Clients wird dann von req.connection.remoteAddress abgeleitet. Dies ist die Standardeinstellung.

IP-Adressen

Eine einzelne IP-Adresse, ein Teilnetz oder ein Array von IP-Adressen und Teilnetzen, denen vertraut werden kann. Die folgende Liste zeigt die vorkonfigurierten Teilnetznamen: * loopback - 127.0.0.1/8, ::1/128 * linklocal - 169.254.0.0/16, fe80::/10 * uniquelocal - 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16, fc00::/7.

Sie können IP-Adressen wie folgt festlegen:

app.set('trust proxy', 'loopback') // specify a single subnet
app.set('trust proxy', 'loopback, 123.123.123.123') // specify a subnet and an address
app.set('trust proxy', 'loopback, linklocal, uniquelocal') // specify multiple subnets as CSV
app.set('trust proxy', ['loopback', 'linklocal', 'uniquelocal']) // specify multiple subnets as an array

Sobald die Werte angegeben wurden, werden die betreffenden IP-Adressen und Teilnetze aus dem Adressfeststellungsprozess ausgeschlossen. Die nicht vertrauenswürdige IP-Adresse, die am nächsten zum Anwendungsserver liegt, wird als IP-Adresse des Clients festgelegt.

Zahl

Dem n-ten Hop vom Proxy-Server soll als Client vertraut werden.

Funktion

Individuell angepasste, vertrauenswürdige Implementierung. Dies sollten Sie nur verwenden, wenn Sie genau wissen, was Sie tun. <pre> app.set('trust proxy', function (ip) { if (ip === '127.0.0.1' || ip === '123.123.123.123') return true; // trusted IPs else return false; }); </pre>

Die Festlegung eines anderen trust proxy-Werts als false resultiert in drei wichtigen Änderungen:

Die Einstellung für trust proxy wird mithilfe des proxy-addr-Pakets implementiert. Weitere Informationen finden Sie in der zugehörigen Dokumentation.