Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Encabezados HTTP y balanceadores de tipo equilibrador de carga de aplicaciones
Las solicitudes y respuestas HTTP utilizan campos de encabezado para enviar información sobre los mensajes HTTP. Los encabezados HTTP se añaden automáticamente. Los campos de encabezado son pares nombre-valor separados por signos de dos puntos, separados a su vez por un retorno de carro (CR) y un salto de línea (LF). Un conjunto estándar de campos de encabezado HTTP se define en RFC 2616, Encabezados de mensajeX-Forwarded
. Los Equilibradores de carga de aplicación admiten los siguientes encabezados X-Forwarded
.
Para obtener más información acerca de las conexiones HTTP, consulte Enrutamiento de solicitudes en la Guía del usuario de Elastic Load Balancing.
Encabezados X-Forwarded
X-Forwarded-For
El encabezado de solicitud X-Forwarded-For
ayuda a identificar la dirección IP de un cliente cuando se utiliza un equilibrador de carga HTTP o HTTPS. Dado que los equilibradores de carga interceptan el tráfico entre los clientes y los servidores, los registros de acceso al servidor contienen únicamente la dirección IP del equilibrador de carga. Para ver la dirección IP del cliente, utilice el atributo routing.http.xff_header_processing.mode
. Este atributo permite modificar, conservar o eliminar el encabezado X-Forwarded-For
en la solicitud HTTP antes de que el Equilibrador de carga de aplicación envíe la solicitud al destino. Los valores posibles para este atributo son append
, preserve
y remove
. El valor predeterminado de este atributo es append
.
Anexar
De manera predeterminada, el Equilibrador de carga de aplicación almacena la dirección IP del cliente en el encabezado de solicitud X-Forwarded-For
y se lo pasa al encabezado de su servidor. Si el encabezado de solicitud X-Forwarded-For
no se incluye en la solicitud original, el equilibrador de carga crea uno con la dirección IP del cliente como el valor de la solicitud. De lo contrario, el equilibrador de carga agrega la dirección IP del cliente al encabezado existente y se lo pasa al encabezado de su servidor. El encabezado de solicitud X-Forwarded-For
puede contener varias direcciones IP separadas por comas. La dirección más a la izquierda es la IP del cliente en la que se realizó la solicitud por primera vez. Le sigue cualquier identificador de proxy posterior, en cadena.
El encabezado de solicitud X-Forwarded-For
tiene el siguiente formato:
X-Forwarded-For: client-ip-address
A continuación se muestra un ejemplo de un encabezado de solicitud X-Forwarded-For
cuya dirección IP de cliente es 203.0.113.7
.
X-Forwarded-For: 203.0.113.7
A continuación se muestra un ejemplo de un encabezado de solicitud X-Forwarded-For
cuya dirección IPv6 de cliente es 2001:DB8::21f:5bff:febf:ce22:8a2e
.
X-Forwarded-For: 2001:DB8::21f:5bff:febf:ce22:8a2e
Cuando el atributo de conservación del puerto del cliente (routing.http.xff_client_port.enabled
) está habilitado en el equilibrador de carga, el encabezado de la solicitud X-Forwarded-For
incluye el atributo client-port-number
adjunto al atributo client-ip-address
, separado por dos puntos. El encabezado luego tiene el siguiente formato:
IPv4 -- X-Forwarded-For: client-ip-address
:client-port-number
IPv6 -- X-Forwarded-For: [client-ip-address]
:client-port-number
En el caso de IPv6, tenga en cuenta que cuando el equilibrador de carga añade el client-ip-address
al encabezado existente, coloca la dirección entre corchetes.
A continuación se muestra un ejemplo de un encabezado de solicitud X-Forwarded-For
para un cliente con una dirección IPv4 de 12.34.56.78
y un número de puerto de 8080
.
X-Forwarded-For: 12.34.56.78:8080
A continuación se muestra un ejemplo de un encabezado de solicitud X-Forwarded-For
para un cliente con una dirección IPv6 de 2001:db8:85a3:8d3:1319:8a2e:370:7348
y un número de puerto de 8080
.
X-Forwarded-For: [2001:db8:85a3:8d3:1319:8a2e:370:7348]:8080
Conservar
El modo preserve
del atributo garantiza que el encabezado X-Forwarded-For
de la solicitud HTTP no se modifique de ninguna manera antes de enviarse a los destinos.
Remove
El modo remove
del atributo elimina el encabezado X-Forwarded-For
de la solicitud HTTP antes de enviarla a los destinos.
nota
Si habilita el atributo de conservación del puerto del cliente (routing.http.xff_client_port.enabled
) y también selecciona preserve
o remove
para el atributo routing.http.xff_header_processing.mode
, el Equilibrador de carga de aplicación anula el atributo de conservación del puerto del cliente. Mantiene el encabezado X-Forwarded-For
sin cambios o lo elimina según el modo que seleccione antes de enviarlo a los destinos.
En la siguiente tabla se muestran ejemplos del encabezado X-Forwarded-For
que recibe el destino al seleccionar el modo append
, preserve
o el modo remove
. En este ejemplo, la dirección IP de la última transferencia es 127.0.0.1
.
Descripción de la solicitud |
Ejemplo de solicitud |
XFF en modo append |
XFF en modo preserve |
XFF en modo remove |
---|---|---|---|---|
La solicitud se envía sin encabezado XFF | GET /index.html HTTP/1.1 Host: example.com |
X-Forwarded-For: 127.0.0.1 |
No presente | No presente |
La solicitud se envía con un encabezado XFF y una dirección IP de cliente. | GET /index.html HTTP/1.1 Host: example.com X-Forwarded-For:
127.0.0.4 |
X-Forwarded-For: 127.0.0.4, 127.0.0.1 |
X-Forwarded-For: 127.0.0.4 |
No presente |
La solicitud se envía con un encabezado XFF con varias direcciones IP de cliente. | GET /index.html HTTP/1.1 Host: example.com X-Forwarded-For:
127.0.0.4, 127.0.0.8 |
X-Forwarded-For: 127.0.0.4, 127.0.0.8,
127.0.0.1 |
X-Forwarded-For: 127.0.0.4, 127.0.0.8 |
No presente |
Para modificar, conservar o eliminar el encabezado X-Forwarded-For mediante AWS CLI
Usa el modify-load-balancer-attributescomando con el atributo. routing.http.xff_header_processing.mode
X-Forwarded-Proto
El encabezado de solicitud X-Forwarded-Proto
ayuda a identificar el protocolo (HTTP o HTTPS) que un cliente utiliza para conectarse al equilibrador de carga. Los registros de acceso al servidor contienen únicamente el protocolo que se utiliza entre el servidor y el equilibrador de carga; sin embargo, no contienen información sobre el protocolo utilizado entre el cliente y el equilibrador de carga. Para determinar el protocolo utilizado entre el cliente y el equilibrador de carga, utilice el encabezado de solicitud X-Forwarded-Proto
. Elastic Load Balancing almacena el protocolo utilizado entre el cliente y el equilibrador de carga en el encabezado de solicitud X-Forwarded-Proto
y se lo pasa al servidor.
La aplicación o el sitio web pueden utilizar el protocolo almacenado en el encabezado de solicitud X-Forwarded-Proto
para generar una respuesta que redirija a la URL correspondiente.
El encabezado de solicitud X-Forwarded-Proto
tiene el siguiente formato:
X-Forwarded-Proto: originatingProtocol
El siguiente ejemplo contiene un encabezado de solicitud X-Forwarded-Proto
correspondiente a una solicitud originada en el cliente como solicitud HTTPS:
X-Forwarded-Proto: https
X-Forwarded-Port
El encabezado de solicitud X-Forwarded-Port
ayuda a identificar el puerto de destino que el cliente utiliza para conectarse al equilibrador de carga.