Espresso dietro i proxy
Quando si esegue un’app Express dietro un proxy inverso, alcune delle API Express possono restituire valori diversi da quelli previsti. Al fine di adeguarsi a questo, l’impostazione dell’applicazione trust proxy può essere utilizzata per esporre le informazioni fornite dal proxy inverso nelle API Express. Il problema più comune è l’espressione API che espone l’indirizzo IP del cliente può invece mostrare un indirizzo IP interno del proxy inverso.
Note
Durante la configurazione dell’impostazione trust proxy, è importante capire l’esatta configurazione del proxy inverso
. Dal momento che questa impostazione sarà i valori di fiducia forniti nella richiesta, è importante che
la combinazione dell’impostazione in Express corrisponda al funzionamento del proxy inverso.
L’impostazione dell’applicazione trust proxy può essere impostata su uno dei valori elencati nella seguente tabella.
| Type | Value |
|---|---|
| Boolean | Se Se Quando si imposta a |
| indirizzi IP | Un indirizzo IP, una sottorete, o un array di indirizzi IP e sottoreti a cui fidarsi come proxy inverso. Il seguente elenco mostra i nomi pre-configurati delle sottorete
È possibile impostare gli indirizzi IP in uno dei seguenti modi: Se specificato, gli indirizzi IP o le sottoreti sono esclusi dal processo di determinazione dell’indirizzo, e l’indirizzo IP non attendibile più vicino al server dell’applicazione è determinato come indirizzo IP del client. Questo funziona controllando se |
| Numero | Usa l’indirizzo che è al massimo Quando si utilizza questa impostazione, è importante assicurarsi che non ci siano multipli, percorsi diversi per l’applicazione Express in modo che il client possa essere inferiore al numero configurato di luppolo di distanza, altrimenti potrebbe essere possibile per il cliente fornire qualsiasi valore. |
Implementazione fiducia personalizzata. |
Abilitare il trust proxy avrà il seguente impatto:
Il valore di req.hostname è derivato dal valore impostato nell’intestazione
X-Forwarded-Host, che può essere impostato dal cliente o dal proxy.X-Forwarded-Protopuò essere impostato dal proxy inverso per dire all’app se si tratta di↓ohttpo anche di un nome non valido. Questo valore è riflesso da req.protocol.I valori req.ip e req.ips sono popolati in base all’indirizzo del socket e all’intestazione
X-Forwarded-For, a partire dal primo indirizzo non fidato.
L’impostazione trust proxy è implementata usando il pacchetto proxy-addr. Per ulteriori informazioni, consultare la documentazione.