Express atrás de proxies
Ao executar um aplicativo do Express atrás de um proxy,
configure (usando app.set()) a variável do
aplicativo trust proxy para um dos valores
listados na seguinte tabela.
Apesar de a execução do aplicativo não falhar se a variável do
aplicativo trust proxy não estiver configurada,
ele irá registrar incorretamente o endereço de IP do proxy como o
endereço de IP do cliente a não ser que o trust
proxy esteja configurado.
| Tipo | Valor | 
|---|---|
| Booleano | Se  Se  | 
| Endereços IP | Um endereço de IP, sub-rede, ou uma matriz de endereços de IP e sub-redes confiáveis. A lista a seguir mostra os nomes de sub-rede pré-configurados: 
 É possível configurar endereços de IP de qualquer uma das formas a seguir: Quando especificados, os endereços de IP ou sub-redes são excluídos do processo de determinação de endereço, e o endereço de IP não confiável mais próximos do servidor de aplicativos é determinado como o endereço de IP do cliente. | 
| Número | Confia no  | 
| Função | Implementação de confiança customizada. Use apenas se souber o que está fazendo.  | 
Configurando um valor não-false para o
trust
proxy resulta em três mudanças importantes:
- 
    O valor de req.hostname é derivado do valor configurado no cabeçalho X-Forwarded-Host, que pode ser configurado pelo cliente ou pelo proxy.
- 
    X-Forwarded-Protopode ser configurado pelo proxy reverso para dizer ao aplicativo se ele éhttpsouhttpou até um nome inválido. Este valor é refletido pelo req.protocol.
- 
    Os valores req.ip e req.ips são populados com a lista de endereços do X-Forwarded-For.
A configuração do trust proxy é
implementada usando o pacote
proxy-addr. Para
obter mais informações, consulte a documentação.