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.
Oyentes para Equilibrador de carga de aplicación
Un oyente es un proceso que comprueba las solicitudes de conexión utilizando el protocolo y el puerto configurados. Antes de comenzar a utilizar el Equilibrador de carga de aplicación, debe agregar al menos un oyente. Si su equilibrador de carga no cuenta con oyentes, no puede recibir tráfico de los clientes. Las reglas que definas para tus oyentes determinan cómo el balanceador de cargas dirige las solicitudes a los destinos que registras, como EC2 las instancias.
Contenido
Configuración del oyente
Los oyentes son compatibles con los siguientes protocolos y puertos:
-
Protocolos: HTTP, HTTPS
-
Puertos: 1-65535
Puede utilizar un oyente HTTPS para trasladar la carga de cifrado y descifrado al equilibrador de carga, de modo que las aplicaciones puedan concentrarse en la lógica de negocio. Si el protocolo del oyente es HTTPS, debe implementar al menos un certificado de servidor SSL en el oyente. Para obtener más información, consulte Crear un oyente HTTPS para el equilibrador de carga de aplicaciones.
Si debe asegurarse de que los destinos descifren el tráfico HTTPS en lugar del equilibrador de carga, puede crear un Equilibrador de carga de red con un oyente TCP en el puerto 443. Con un oyente TCP, el equilibrador de carga transfiere el tráfico cifrado a los destinos sin descifrarlo. Para obtener más información, consulte la Guía del usuario de Equilibradores de carga de red.
Los balanceadores de carga de aplicaciones ofrecen soporte nativo para. WebSockets Puede convertir una conexión HTTP/1.1 existente en una WebSocket (ws
owss
) conexión mediante una actualización de la conexión HTTP. Al actualizar, la conexión TCP utilizada para las solicitudes (tanto al balanceador de carga como al destino) se convierte en una WebSocket conexión persistente entre el cliente y el destino a través del balanceador de cargas. Puedes utilizarla WebSockets con dispositivos de escucha HTTP y HTTPS. Las opciones que elija para su agente de escucha se aplican tanto a WebSocket las conexiones como al tráfico HTTP. Para obtener más información, consulta Cómo funciona el WebSocket protocolo en la Guía para CloudFront desarrolladores de Amazon.
Los equilibradores de carga de apliación proporcionan soporte nativo para HTTP/2 con oyentes HTTPS. Puede enviar hasta 128 solicitudes a la vez con una conexión HTTP/2. Se puede usar la versión del protocolo para enviar la solicitud a los destinos mediante HTTP/2. Para obtener más información, consulte Versión del protocolo. Como HTTP/2 usa las conexiones frontend de una forma más eficaz, es posible que observe que se establecen menos conexiones entre los clientes y el equilibrador de carga. No puede utilizar la característica server-push de HTTP/2.
Para obtener más información, consulte Enrutamiento de solicitudes en la Guía del usuario de Elastic Load Balancing.
Atributos del oyente
Los siguientes son los atributos de escucha de los balanceadores de carga de aplicaciones
routing.http.request.x_amzn_mtls_clientcert_serial_number.header_name
-
Permite modificar el nombre del encabezado de la solicitud HTTP X-Amzn-Mtls-Clientcert-Serial-Number.
routing.http.request.x_amzn_mtls_clientcert_issuer.header_name
-
Le permite modificar el nombre del encabezado de la solicitud HTTP X-Amzn-Mtls-Clientcert-Issuer.
routing.http.request.x_amzn_mtls_clientcert_subject.header_name
-
Permite modificar el nombre del encabezado de la solicitud HTTP X-Amzn-Mtls-Clientcert-Subject.
routing.http.request.x_amzn_mtls_clientcert_validity.header_name
-
Permite modificar el nombre del encabezado de la solicitud HTTP X-Amzn-Mtls-Clientcert-Validity.
routing.http.request.x_amzn_mtls_clientcert_leaf.header_name
-
Permite modificar el nombre del encabezado de la solicitud HTTP X-Amzn-Mtls-Clientcert-Leaf.
routing.http.request.x_amzn_mtls_clientcert.header_name
-
Le permite modificar el nombre del encabezado de la solicitud HTTP X-Amzn-Mtls-Clientcert.
routing.http.request.x_amzn_tls_version.header_name
-
Permite modificar el nombre del encabezado de la solicitud HTTP de X-Amzn-Tls-Version.
routing.http.request.x_amzn_tls_cipher_suite.header_name
-
Le permite modificar el nombre del encabezado de la solicitud HTTP de X-Amzn-Tls-Cipher-Suite.
routing.http.response.server.enabled
-
Le permite permitir o eliminar el encabezado del servidor de respuesta HTTP.
routing.http.response.strict_transport_security.header_value
-
Informa a los navegadores de que solo se debe acceder al sitio mediante HTTPS y que cualquier intento futuro de acceder a él mediante HTTP debe convertirse automáticamente a HTTPS.
routing.http.response.access_control_allow_origin.header_value
-
Especifica qué orígenes pueden acceder al servidor.
routing.http.response.access_control_allow_methods.header_value
-
Devuelve qué métodos HTTP están permitidos cuando se accede al servidor desde un origen diferente.
routing.http.response.access_control_allow_headers.header_value
-
Especifica qué encabezados se pueden usar durante la solicitud.
routing.http.response.access_control_allow_credentials.header_value
-
Indica si el navegador debe incluir credenciales, como cookies o de autenticación, al realizar las solicitudes.
routing.http.response.access_control_expose_headers.header_value
-
Devuelve qué encabezados puede mostrar el navegador al cliente solicitante.
routing.http.response.access_control_max_age.header_value
-
Especifica durante cuánto tiempo se pueden almacenar en caché los resultados de una solicitud de verificación previa, en segundos.
routing.http.response.content_security_policy.header_value
-
Especifica las restricciones impuestas por el navegador para ayudar a minimizar el riesgo de determinados tipos de amenazas a la seguridad.
routing.http.response.x_content_type_options.header_value
-
Indica si se deben seguir los tipos de MIME anunciados en los encabezados de Content-Type y no se deben cambiar.
routing.http.response.x_frame_options.header_value
-
Indica si el navegador puede representar una página en un marco, iframe, incrustación u objeto.
Reglas del oyente
Cada oyente tiene una acción predeterminada, que se conoce también como regla predeterminada. La regla predeterminada no se puede eliminar y siempre se ejecuta en último lugar. Cada una consta de una prioridad, de una o varias acciones y de una o varias condiciones. Puede agregar y editar reglas en cualquier momento. Para obtener más información, consulte Editar una regla.
Reglas predeterminadas
Cuando crea un oyente, define acciones para la regla predeterminada. Las reglas predeterminadas no pueden tener condiciones. Si no se cumplen las condiciones de ninguna de las reglas del oyente, se realiza la acción de la regla predeterminada.
A continuación, se muestra un ejemplo de una regla predeterminada vista en la consola:

Prioridad de las reglas
Cada regla tiene una prioridad. Las reglas se evalúan por orden de prioridad, desde el valor más bajo hasta el valor más alto. La regla predeterminada se evalúa en último lugar. Puede cambiar la prioridad de una regla no predeterminada en cualquier momento. No puede cambiar la prioridad de la regla predeterminada. Para obtener más información, consulte Actualizar la prioridad de una regla.
Acciones de las reglas
Cada acción de regla tiene un tipo, una prioridad y la información necesaria para realizar la acción. Para obtener más información, consulte Tipos de acción de regla.
Condiciones de las reglas
Cada condición de regla tiene un tipo e información de configuración. Cuando se cumplen las condiciones de una regla, se llevan a cabo sus acciones. Para obtener más información, consulte Tipos de condición de las reglas.
Tipos de acción de regla
Se admiten los siguientes tipos de acción para una regla de oyente:
authenticate-cognito
-
[Oyentes HTTPS] Utilice Amazon Cognito para autenticar a los usuarios. Para obtener más información, consulte Autenticación de usuarios mediante un Equilibrador de carga de aplicación.
authenticate-oidc
-
[Oyentes HTTPS] Utilice un proveedor de identidades compatible con OpenID Connect (OIDC) para autenticar a los usuarios.
fixed-response
-
Devuelve una respuesta HTTP personalizada. Para obtener más información, consulte Acciones de respuesta fija.
forward
-
Reenvíe las solicitudes a los grupos de destino especificados. Para obtener más información, consulte Acciones de reenvío.
redirect
-
Direcciona las solicitudes de una URL a otra. Para obtener más información, consulte Acciones de redirección.
Primero se realiza la acción con la prioridad más baja. Cada regla debe incluir exactamente una de las acciones siguientes: forward
, redirect
o fixed-response
y debe ser la última acción que realizar.
Si la versión del protocolo es gRPC o HTTP/2, las únicas acciones admitidas son las acciones de forward
.
Acciones de respuesta fija
Puede utilizar acciones fixed-response
para omitir las solicitudes del cliente y devolver una respuesta HTTP personalizada. Puede utilizar esta acción para devolver un código de respuesta 2XX, 4XX o 5XX junto con un mensaje opcional.
Cuando se ejecuta una acción fixed-response
, la acción y la URL del destino se graban en los registros de acceso. Para obtener más información, consulte Entradas de los registros de acceso. El número de acciones fixed-response
correctas se registra en la métrica HTTP_Fixed_Response_Count
. Para obtener más información, consulte Métricas del Equilibrador de carga de aplicación.
ejemplo Ejemplo de acción de respuesta fija para AWS CLI
Puede especificar una acción al crear o modificar una regla. Para obtener más información, consulte los comandos create-rule y modify-rule. La acción siguiente envía una respuesta fija con el código de estado y cuerpo de mensaje especificados.
[ { "Type": "fixed-response", "FixedResponseConfig": { "StatusCode": "200", "ContentType": "text/plain", "MessageBody": "Hello world" } } ]
Acciones de reenvío
Puede utilizar acciones forward
para direccionar solicitudes a uno o más grupos de destino. Si especifica varios grupos de destino para una acción forward
, debe especificar una ponderación para cada grupo de destino. Cada ponderación de grupo de destino es un valor de 0 a 999. Las solicitudes que coinciden con una regla del oyente con los grupos de destino ponderados se distribuyen a estos grupos de destino en función de sus ponderaciones. Por ejemplo, si especifica dos grupos de destino, cada uno con una ponderación de 10, cada grupo de destino recibe la mitad de las solicitudes. Si especifica dos grupos de destino, uno con una ponderación de 10 y el otro con una ponderación de 20, el grupo de destino con una ponderación de 20 recibe el doble de solicitudes que el otro grupo de destino.
De forma predeterminada, la configuración de una regla para distribuir tráfico entre los grupos de destino ponderados no garantiza que se cumplan las sesiones persistente. Para asegurarse de que se respetan las sesiones persistente, habilite la persistencia del grupo de destino para la regla. Cuando el balanceador de cargas dirige por primera vez una solicitud a un grupo objetivo ponderado, genera una cookie con el nombre AWSALBTG que codifica la información sobre el grupo objetivo seleccionado, cifra la cookie e incluye la cookie en la respuesta al cliente. El cliente debe incluir la cookie que recibe en las solicitudes posteriores al equilibrador de carga. Cuando el equilibrador de carga recibe una solicitud que coincide con una regla con la persistencia del grupo de destino activada y que contiene la cookie, la solicitud se direcciona al grupo de destino especificado en la cookie.
Los equilibradores de carga de aplicaciones no admiten valores de cookies codificados como URL.
Con las solicitudes CORS (intercambio de recursos de varios orígenes), algunos navegadores requieren SameSite=None; Secure
para habilitar la persistencia. En este caso, Elastic Load Balancing genera una segunda cookie AWSALBTGCORS, que incluye la misma información que la cookie de adherencia original más este SameSite
atributo. Los clientes reciben ambas cookies.
ejemplo Ejemplo de acción de reenvío con un grupo de destino
Puede especificar una acción al crear o modificar una regla. Para obtener más información, consulte los comandos create-rule y modify-rule. La acción siguiente reenvía las solicitudes al grupo de destino especificado.
[ { "Type": "forward", "ForwardConfig": { "TargetGroups": [ { "TargetGroupArn": "arn:aws:elasticloadbalancing:
us-west-2
:123456789012
:targetgroup/my-targets
/73e2d6bc24d8a067
" } ] } } ]
ejemplo Ejemplo de acción de reenvío con dos grupos de destino ponderados
La siguiente acción reenvía las solicitudes a los dos grupos de destino especificados, basándose en la ponderación de cada grupo de destino.
[ { "Type": "forward", "ForwardConfig": { "TargetGroups": [ { "TargetGroupArn": "arn:aws:elasticloadbalancing:
us-west-2
:123456789012
:targetgroup/blue-targets
/73e2d6bc24d8a067
", "Weight": 10 }, { "TargetGroupArn": "arn:aws:elasticloadbalancing:us-west-2
:123456789012
:targetgroup/green-targets
/09966783158cda59
", "Weight": 20 } ] } } ]
ejemplo Ejemplo de acción de reenvío con la persistencia activada
Si tiene una acción de reenvío con varios grupos de destino y uno o más de ellos tienen habilitadas las sesiones persistente, debe habilitar la persistencia del grupo de destino.
La siguiente acción reenvía las solicitudes a los dos grupos de destino especificados, con la persistencia del grupo de destino activada. Las solicitudes que no contienen la cookie de permanencia se enrutan en función de la ponderación de cada grupo de destino.
[ { "Type": "forward", "ForwardConfig": { "TargetGroups": [ { "TargetGroupArn": "arn:aws:elasticloadbalancing:
us-west-2
:123456789012
:targetgroup/blue-targets
/73e2d6bc24d8a067
", "Weight": 10 }, { "TargetGroupArn": "arn:aws:elasticloadbalancing:us-west-2
:123456789012
:targetgroup/green-targets
/09966783158cda59
", "Weight": 20 } ], "TargetGroupStickinessConfig": { "Enabled": true, "DurationSeconds": 1000 } } } ]
Acciones de redirección
Puede usar acciones redirect
para redirigir las solicitudes de los clientes de una URL a otra. Puede configurar las acciones de redirección como temporales (HTTP 302) o permanentes (HTTP 301), en función de sus necesidades.
Un URI está formado por los siguientes componentes:
protocol
://hostname
:port
/path
?query
Debe modificar al menos uno de los siguientes componentes para evitar que se produzca un bucle de redirección: protocolo, nombre de host, puerto o ruta. Los elementos que no se modifiquen conservarán sus valores originales.
- protocolo
-
Protocolo (HTTP o HTTPS). Puede redirigir HTTP a HTTP, HTTP a HTTPS y HTTPS a HTTPS. No puede redirigir HTTPS a HTTP.
- hostname
-
Nombre del host. Un nombre de host no distingue entre mayúsculas y minúsculas, puede tener hasta 128 caracteres de longitud y constar de caracteres alfanuméricos, comodines (* y ?) y guiones (-).
- puerto
-
Puerto (entre 1 y 65535).
- ruta
-
Ruta absoluta, comenzando desde la primera “/”. Una ruta distingue entre mayúsculas y minúsculas, puede tener hasta 128 caracteres de longitud y constar de caracteres alfanuméricos, comodines (* y ?), & (mediante &) y los caracteres especiales siguientes: _-.$/~"'@:+.
- consulta
-
Parámetros de la consulta. La longitud máxima es de 128 caracteres.
Puede reutilizar los componentes del URI de la URL original en la URL de destino utilizando las siguientes palabras clave reservadas:
-
#{protocol}
- Mantiene el protocolo. Se usa en los componentes de protocolo y consulta. -
#{host}
- Mantiene el dominio. Se usa en los componentes de nombre de host, ruta y consulta. -
#{port}
- Mantiene el puerto. Se usa en los componentes de puerto, ruta y consulta. -
#{path}
- Mantiene la ruta. Se usa en los componentes de ruta y consulta. -
#{query}
- Mantiene los parámetros de consulta. Se usa en el componente de consulta.
Cuando se ejecuta una acción redirect
, esta acción se graba en los registros de acceso. Para obtener más información, consulte Entradas de los registros de acceso. El número de acciones redirect
correctas se registra en la métrica HTTP_Redirect_Count
. Para obtener más información, consulte Métricas del Equilibrador de carga de aplicación.
ejemplo Ejemplo de acciones de redirección mediante la consola
La siguiente regla configura una redirección permanente a una URL que utiliza el protocolo HTTPS y el puerto especificado (40443), pero mantiene el nombre de host, la ruta y los parámetros de consulta originales. Esta pantalla es equivalente a “https://#{host}:40443/#{path}?#{query}”.

La siguiente regla configura una redirección permanente a una URL que utiliza el protocolo, el puerto, el nombre de host y los parámetros de consulta originales y utiliza la palabra clave #{path}
para crear una ruta modificada. Esta pantalla es equivalente a “#{protocol}://#{host}:#{port}/new/#{path}?#{query}”.

ejemplo Ejemplo de acción de redireccionamiento para el AWS CLI
Puede especificar una acción al crear o modificar una regla. Para obtener más información, consulte los comandos create-rule y modify-rule. La siguiente acción redirige una solicitud HTTP a una solicitud HTTPS en el puerto 443, con el mismo nombre de host, ruta y cadena de consulta que la solicitud HTTP.
[ { "Type": "redirect", "RedirectConfig": { "Protocol": "HTTPS", "Port": "443", "Host": "#{host}", "Path": "/#{path}", "Query": "#{query}", "StatusCode": "HTTP_301" } } ]
Tipos de condición de las reglas
Se admiten los siguientes tipos de condición para una regla:
host-header
-
Ruta en función de el nombre de host de cada solicitud. Para obtener más información, consulte Condiciones de host.
http-header
-
Ruta en función de los encabezados HTTP de cada solicitud. Para obtener más información, consulte Condiciones de los encabezados HTTP.
http-request-method
-
Ruta en función de el método de solicitud HTTP de cada solicitud. Para obtener más información, consulte Condiciones de método de solicitud HTTP.
path-pattern
-
Ruta basada en los patrones de ruta de la solicitud URLs. Para obtener más información, consulte Condiciones de ruta.
query-string
-
Ruta en función de pares clave/valor o en valores en las cadenas de consulta. Para obtener más información, consulte Condiciones de cadena de consulta.
source-ip
-
Ruta en función de la dirección IP de origen de cada solicitud. Para obtener más información, consulte Condiciones de dirección IP de origen.
Cada regla puede incluir también hasta una de las siguientes condiciones: host-header
, http-request-method
, path-pattern
y source-ip
. Cada regla puede incluir también una o más de las siguientes condiciones: http-header
y query-string
.
Puede especificar hasta tres evaluaciones de coincidencia por condición. Por ejemplo, para cada condición http-header
, puede especificar hasta tres cadenas que comparar con el valor del encabezado HTTP en la solicitud. La condición se satisface si una de las cadenas coincide con el valor del encabezado HTTP. Para requerir que todas las cadenas sean una coincidencia, cree una condición por evaluación de coincidencia.
Puede especificar hasta cinco evaluaciones de coincidencia por regla. Por ejemplo, puede crear una regla con cinco condiciones donde cada condición tenga una evaluación de coincidencia.
Puede incluir caracteres comodín en las evaluaciones de coincidencia para http-header
, host-header
, path-pattern
y query-string
. Hay un límite de cinco caracteres comodín por regla.
Las reglas se aplican solo a los caracteres ASCII visibles; se excluyen los caracteres de control (0x00 a 0x1f y 0x7f).
Para ver demostraciones, consulte Direccionamiento de solicitudes avanzado
Condiciones de los encabezados HTTP
Puede utilizar las condiciones de encabezado HTTP para configurar reglas que dirijan solicitudes basadas en los encabezados HTTP para la solicitud. Puede especificar los nombres de campos de encabezado HTTP estándar o personalizados. El nombre del encabezado y la evaluación de coincidencia no distinguen entre mayúsculas y minúsculas. Los siguientes caracteres comodín se admiten en las cadenas de comparación: * (coincide con 0 o más caracteres) y ? (coincide exactamente con 1 carácter). Los caracteres comodín no se admiten en el nombre del encabezado.
ejemplo Ejemplo de condición de encabezado HTTP para AWS CLI
Puede especificar condiciones al crear o modificar una regla. Para obtener más información, consulte los comandos create-rule y modify-rule. La condición siguiente se satisface mediante solicitudes con un encabezado usuario-agente que coincida con una de las cadenas especificadas.
[ { "Field": "http-header", "HttpHeaderConfig": { "HttpHeaderName": "User-Agent", "Values": ["*Chrome*", "*Safari*"] } } ]
Condiciones de método de solicitud HTTP
Puede utilizar las condiciones de método de solicitud HTTP para configurar reglas que dirijan solicitudes basadas en el método de solicitud HTTP de la solicitud. Puede especificar métodos HTTP estándar o personalizados. La evaluación de coincidencia distingue entre mayúsculas y minúsculas. Los caracteres comodín no se admiten; por tanto, el nombre del método tiene que ser una coincidencia exacta.
Le recomendamos direccionar las solicitudes GET y HEAD de la misma forma, porque la respuesta a una solicitud HEAD se podría almacenar en caché.
ejemplo Ejemplo de condición de método HTTP para el AWS CLI
Puede especificar condiciones al crear o modificar una regla. Para obtener más información, consulte los comandos create-rule y modify-rule. La condición siguiente se satisface mediante solicitudes que utilizan el método especificado.
[ { "Field": "http-request-method", "HttpRequestMethodConfig": { "Values": ["CUSTOM-METHOD"] } } ]
Condiciones de host
Puede utilizar las condiciones de host para definir reglas que direccionen solicitudes en función del nombre del host en el encabezado del host (lo que también se conoce como direccionamiento basado en host). Esto permite admitir varios subdominios y diferentes dominios de nivel superior a través de un único equilibrador de carga.
Los nombre de host no distinguen entre mayúsculas y minúsculas, su longitud máxima es de 128 caracteres y pueden contener cualquiera de los siguientes caracteres:
-
A–Z, a–z, 0–9
-
- .
-
* (coincide con 0 o más caracteres)
-
? (coincide exactamente con 1 carácter)
Debe incluir al menos un carácter “.”. Solo puede contener caracteres alfabéticos detrás del carácter “.” final.
Ejemplos de nombres de host
-
example.com
-
test.example.com
-
*.example.com
La regla *.example.com
coincide con test.example.com
pero no coincide con example.com
.
ejemplo Ejemplo de condición de encabezado de host para AWS CLI
Puede especificar condiciones al crear o modificar una regla. Para obtener más información, consulte los comandos create-rule y modify-rule. La condición siguiente se satisface mediante solicitudes con un encabezado de host que coincide con la cadena especificada.
[ { "Field": "host-header", "HostHeaderConfig": { "Values": ["*.example.com"] } } ]
Condiciones de ruta
Puede utilizar las condiciones de ruta para definir reglas que direccionen las solicitudes en función de la dirección URL de la solicitud (lo que también se conoce como direccionamiento basado en ruta).
El patrón de ruta se aplica únicamente a la ruta de la dirección URL, no a sus parámetros de consulta. Se aplica solo a los caracteres ASCII visibles; se excluyen los caracteres de control (0x00 a 0x1f y 0x7f).
La evaluación de la regla se realiza solo después de que se produzca la normalización del URI.
Los patrones de ruta distinguen entre mayúsculas y minúsculas, su longitud máxima es de 128 caracteres y pueden contener cualquiera de los siguientes caracteres.
-
A–Z, a–z, 0–9
-
_ - . $ / ~ " ' @ : +
-
& (usando &)
-
* (coincide con 0 o más caracteres)
-
? (coincide exactamente con 1 carácter)
Si la versión del protocolo es gRPC, las condiciones pueden ser específicas de un paquete, un servicio o un método.
Ejemplos de patrones de ruta HTTP
-
/img/*
-
/img/*/pics
Ejemplos de patrones de ruta gRPC
-
/package
-
/package.service
-
/package.service/method
El patrón de ruta se utiliza para direccionar solicitudes, no para modificarlas. Por ejemplo, si una ruta tiene el patrón de /img/*
, la regla reenviará una solicitud para /img/picture.jpg
al grupo de destino especificado como una solicitud de /img/picture.jpg
.
ejemplo Ejemplo de condición de patrón de ruta para el AWS CLI
Puede especificar condiciones al crear o modificar una regla. Para obtener más información, consulte los comandos create-rule y modify-rule. La condición siguiente se satisface mediante solicitudes con una dirección URL que contenga la cadena especificada.
[ { "Field": "path-pattern", "PathPatternConfig": { "Values": ["/img/*"] } } ]
Condiciones de cadena de consulta
Puede utilizar condiciones de cadena de consulta para configurar reglas que dirijan solicitudes basadas en pares clave/valor o valores en la cadena de consulta. La evaluación de coincidencia no distingue entre mayúsculas y minúsculas. Se admiten los siguientes caracteres comodín: * (coincide con 0 o más caracteres) y ? (coincide exactamente con 1 carácter).
ejemplo Ejemplo de condición de cadena de consulta para AWS CLI
Puede especificar condiciones al crear o modificar una regla. Para obtener más información, consulte los comandos create-rule y modify-rule. La condición siguiente la satisfacen las solicitudes con una cadena de consulta que incluye un par clave/valor de “version=v1” o cualquier clave definida en “example”.
[ { "Field": "query-string", "QueryStringConfig": { "Values": [ { "Key": "version", "Value": "v1" }, { "Value": "*example*" } ] } } ]
Condiciones de dirección IP de origen
Puede utilizar las condiciones de dirección IP de origen para configurar reglas que direccionen solicitudes en función de la dirección IP de origen de la solicitud. La dirección IP se debe especificar en formato CIDR. Puede utilizar ambas IPv6 direcciones IPv4 y. No se admiten caracteres comodín. No puede especificar el CIDR 255.255.255.255/32
para la condición de la regla IP de origen.
Si un cliente está detrás de un proxy, esta es la dirección IP del proxy, no la dirección IP del cliente.
Las direcciones del X-Forwarded-For encabezado no cumplen esta condición. Para buscar direcciones en el X-Forwarded-For encabezado, utilice una http-header
condición.
ejemplo Ejemplo de condición de IP de origen para AWS CLI
Puede especificar condiciones al crear o modificar una regla. Para obtener más información, consulte los comandos create-rule y modify-rule. La condición siguiente se satisface mediante solicitudes con una dirección IP de origen en uno de los bloques de CIDR especificados.
[ { "Field": "source-ip", "SourceIpConfig": { "Values": ["192.0.2.0/24", "198.51.100.10/32"] } } ]
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
.
importante
El encabezado X-Forwarded-For
debe usarse con precaución debido a los posibles riesgos de seguridad. Las entradas solo pueden considerarse fiables si las agregan sistemas que estén debidamente protegidos dentro de la red.
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 servidor. El encabezado de solicitud X-Forwarded-For
puede contener varias direcciones IP separadas por comas.
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 encabezado de X-Forwarded-For
solicitud para un cliente con una IPv6 dirección de2001: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
Por IPv6 ejemplo, ten en cuenta que cuando el balanceador de cargas añade la dirección client-ip-address
al encabezado existente, incluye la dirección entre corchetes.
A continuación se muestra un ejemplo de encabezado de X-Forwarded-For
solicitud para un cliente con una IPv4 dirección 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 encabezado de X-Forwarded-For
solicitud para un cliente con una IPv6 dirección 2001:db8:85a3:8d3:1319:8a2e:370:7348
y un número de puerto de8080
.
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.
Quitar
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 X-Forwarded-For encabezado mediante la consola
Abre la EC2 consola de Amazon en https://console.aws.amazon.com/ec2/
. -
En el panel de navegación, seleccione Load Balancers.
-
Seleccione el equilibrador de carga.
-
En la pestaña Atributos, seleccione Editar.
-
En la sección Configuración del tráfico, en Gestión de paquetes, en el X-Forwarded-For encabezado, selecciona Añadir (predeterminado), Conservar o Eliminar.
-
Elija Guardar cambios.
Para modificar, conservar o eliminar el X-Forwarded-For encabezado mediante el AWS CLI
Utilice el modify-load-balancer-attributescomando con el routing.http.xff_header_processing.mode
atributo.
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.