Esta traducci贸n proporcionada por StrongLoop / IBM.

Este documento puede estar desfasado respecto a la documentaci贸n en ingl茅s. Para ver las 煤ltimas actualizaciones, consulte la documentaci贸n en ingl茅s.

Express detr谩s de proxies

Cuando ejecute una aplicaci贸n Express detr谩s de un proxy, establezca (utilizando app.set()) la variable de aplicaci贸n trust proxy en uno de los valores de la siguiente tabla.

Aunque la aplicaci贸n no dejar谩 de ejecutarse si no se establece la variable de aplicaci贸n trust proxy, registrar谩 incorrectamente la direcci贸n IP del proxy como la direcci贸n IP del cliente, a menos que se configure trust proxy.

TipoValor
Booleano

Si es true, la direcci贸n IP del cliente se entiende como la entrada m谩s a la izquierda en la cabecera X-Forwarded-*.

Si es false, la aplicaci贸n se entiende como orientada directamente a Internet, y la direcci贸n IP del cliente se obtiene de req.connection.remoteAddress. Este es el valor predeterminado.

Direcciones IP

Una direcci贸n IP, una subred o una matriz de direcciones IP y subredes de confianza. La siguiente lista muestra los nombres de subred preconfigurados:

  • 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

Puede establecer direcciones IP de varias formas:

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

Cuando se especifican, las direcciones IP o las subredes se excluyen del proceso de determinaci贸n de direcciones, y la direcci贸n IP no de confianza m谩s pr贸xima al servidor de aplicaciones se establece como la direcci贸n IP del cliente.

N煤mero

Conf铆e en la porci贸n n entre el origen y el destino del servidor proxy accesible externamente como el cliente.

Funci贸n

Implementaci贸n de confianza personalizada. Util铆cela s贸lo si sabe lo que est谩 haciendo.

app.set('trust proxy', function (ip) {
  if (ip === '127.0.0.1' || ip === '123.123.123.123') return true; // trusted IPs
  else return false;
});

Si establece un valor de trust proxy distinto de false, se producen tres cambios importantes:

El valor trust proxy se implementa utilizando el paquete proxy-addr. Para obtener m谩s informaci贸n, consulte su documentaci贸n.