En NSX 6.1.5 y versiones posteriores, al habilitar x-forwarded-for, el modo de conexión HTTP cambia de cierre pasivo (option httpclose) al modo predeterminado cierre de servidor HTTP (option http-server-close). Esto mantiene abierta la conexión orientada al cliente, mientras que la conexión orientada al servidor se cierra tras recibir una respuesta del servidor. Antes de NSX 6.1.5, el equilibrador de carga de NSX no cerraba la conexión de forma proactiva, pero insertaba el encabezado de cierre de conexión "Connection:close" en ambas direcciones para indicar al cliente o al servidor que cerraran la conexión. Si una transacción de HTTP/HTTPS falla en el equilibrador de carga de NSX después de actualizar a NSX 6.1.5 o versiones posteriores, agregue una regla de aplicación con la opción de script httpclose y asóciela al servidor virtual que ya no está en funcionamiento.

Cierre de servidor HTTP (opción predeterminada): la conexión orientada al servidor se cierra una vez que se recibe el final de la respuesta y la conexión orientada al cliente permanece abierta. Cierre de servidor HTTP proporciona latencia en el lado cliente (red lenta) y hace que la sesión se vuelva a utilizar de forma más rápida en el lado servidor para ahorrar recursos del servidor. También permite a los servidores que funcionan sin conexión keep-alive funcionar con este tipo de conexión desde un punto de vista de cliente. Este modo es adecuado en la mayoría de los casos, sobre todo con redes lentas orientadas al cliente y redes rápidas orientadas al servidor.

HTTP Keep Alive - Todas las solicitudes y las respuestas se procesan y las conexiones permanecen abiertas, pero inactivas entre las respuestas y las solicitudes. Las ventajas son menor latencia entre las transacciones y menor necesidad de capacidad de procesamiento en el lado servidor. Tenga en cuenta que los requisitos de memoria aumentarán para alojar al número de sesiones activas, que será mayor dado que las conexiones ya no se cierran después de cada solicitud. El tiempo de espera de inactividad orientado al cliente se puede configurar mediante la regla de aplicación "timeout http-persistentes [time]". De forma predeterminada, el tiempo de espera de inactividad es 1 segundo. Este modo es obligatorio cuando una aplicación requiere autenticación NTLM.

Túnel HTTP - Solo se procesan la primera solicitud y la primera respuesta y se establece un túnel entre el cliente y el servidor, lo que les permite comunicarse sin mayor análisis del protocolo HTTP. Una vez establecida, la conexión permanece tanto en el lado cliente como en el lado servidor. Para habilitar este modo, no se deben configurar ninguna de las opciones siguientes: modo de cierre pasivo, modo de cierre de servidor y modo de cierre forzado.

El modo de túnel HTTP afecta a las siguientes funciones y se aplica solo a la primera solicitud y a la primera respuesta de una sesión:

  • no se generan registros

  • análisis del encabezado HTTP

  • manipulación de encabezado HTTP

  • procesamiento de cookies

  • conmutación de contenido

  • inserción del encabezado X-Forwarded-For

Cierre pasivo de HTTP - Es igual que el modo de túnel, pero con un encabezado de cierre de conexión "Connection:close" agregado tanto en el lado cliente como en el lado servidor. Ambos extremos se cierran tras el primer intercambio de solicitud y de respuesta. Si se configura "option httpclose", el equilibrador de carga de NSX funciona en el modo de túnel y comprueba si hay un encabezado de cierre de conexión "Connection: close" en cada lado. Si el encabezado no está presente, se agregará un encabezado de cierre de conexión "Connection: close". A continuación, cada extremo cierra la conexión TCP de forma activa después de cada transferencia, lo que da lugar a un cambio al modo de cierre de HTTP. Se eliminará cualquier encabezado de conexión que no sea "close". Las aplicaciones que no puedan procesar correctamente la segunda solicitud ni las posteriores, como una cookie insertada por el equilibrador de carga de NSX y retirada por las siguientes solicitudes del cliente, pueden usar el modo de túnel o el modo de cierre pasivo.

Algunos servidores HTTP no necesariamente cerrarán las conexiones al recibir la configuración "Connection: close" de "option httpclose". Si el cliente tampoco cierra la conexión, esta permanecerá abierta hasta que el tiempo de espera se agote. Esto crea un gran número de conexiones simultáneas en los servidores y muestra una larga duración de la sesión global en los registros. Por este motivo, no son compatibles con navegadores antiguos HTTP 1.0. Si esto ocurre, utilice "option forceclose", que cierra de forma activa la conexión de la solicitud una vez que el servidor responda. La opción "forceclose" también libera antes la conexión del servidor porque no tiene que esperar a que el cliente lo confirme.

Cierre forzado de HTTP - El equilibrador de carga de NSX cierra de forma activa tanto las conexiones del servidor como las del cliente tras la finalización de una respuesta. Algunos servidores HTTP no necesariamente cerrarán las conexiones al recibir la configuración "Connection: close" de "option httpclose". Si el cliente tampoco cierra la conexión, esta permanecerá abierta hasta que el tiempo de espera se agote. Esto crea un gran número de conexiones simultáneas en los servidores y muestra una larga duración de la sesión global en los registros. Cuando esto ocurre, "option forceclose" cerrará de forma activa el canal del servidor de salida en cuanto el servidor termine de responder y liberará algunos recursos antes de lo que se haría con "option httpclose".

NSX

Modo de conexión predeterminada

Modo de conexión cuando X-Forwarded-For está habilitado

Reglas de aplicación disponibles para cambiar el modo de conexión

6.0.x, 6.1.0, 6.1.1

Cierre de servidor HTTP

“option httpclose” se agrega automáticamente al servidor virtual para forzar que xff se agregue a todas las solicitudes según se especifica en el documento de HAProxy. El encabezado xff se agrega a cada solicitud del cliente cuando se realiza el envío a un servidor back-end.

No

6.1.2 - 6.1.4

Cierre de servidor HTTP

Cierre pasivo de HTTP (“option httpclose” se agrega automáticamente al servidor virtual)

“no option http-server-close”

“option httpclose”

“no option httpclose”

6.1.5 - 6.1.x 6.2.0 - 6.2.2

Cierre de servidor HTTP

El encabezado xff de cierre de servidor HTTP se agrega a cada solicitud del cliente cuando se realiza el envío al servidor back-end.

“no option http-server-close”

“option httpclose”

“no option httpclose”

6.2.3-6.2.5

Cierre de servidor HTTP

El encabezado xff de cierre de servidor HTTP se agrega a cada solicitud del cliente cuando se realiza el envío al servidor back-end.

“no option http-server-close”

“option httpclose”

“no option httpclose”

6.2.3-6.2.5

Cierre de servidor HTTP

El encabezado xff de cierre de servidor HTTP se agrega a cada solicitud del cliente cuando se realiza el envío al servidor back-end.

“no option http-server-close”

“no option httpclose”

“option httpclose”

6.2.5 - 6.2.x

Cierre de servidor HTTP

El encabezado xff de cierre de servidor HTTP se agrega a cada solicitud del cliente cuando se realiza el envío al servidor back-end.

“no option http-server-close”

“option http-keep-alive”

“option http-tunnel”

“option httpclose”

“option forceclose”