Servicios de redes de aplicaciones : Switches de servicios de contenido Cisco CSS de la serie 11500

Haciendo los keepalives HTTP y a los servidores ColdFusiones del Cisco CSS 11000 trabaje junto

17 Octubre 2016 - Traducción Automática
Otras Versiones: PDFpdf | Inglés (22 Agosto 2015) | Comentarios


Contenido

Introducción
Información sobre el encabezado HTTP
Comprensión de las diferencias entre los métodos del HTTP HEAD y HTTP GET
Cómo responden los servidores ColdFusion a los Keepalive de HTTP
La señal de mantenimiento HTTP responde, CSS 11000 comprende
Otro problema de URI y ColdFusion de mantenimiento
Uso de señales de mantenimiento en secuencia de comandos como solución alternativa
Discusiones relacionadas de la comunidad de soporte de Cisco
Información Relacionada


Introducción

Un switch de servicios de contenido Cisco serie CSS 11000 envía periódicamente un mensaje de señal de mantenimiento a un servicio para determinar si el estado del servicio es vivo, muriendo o muerto. Usted puede utilizar un keepalive mientras que una revisión médica para aseegurarse el servicio está para arriba de modo que el CSS11000 pueda utilizar el servicio para el Equilibrio de carga. De otro modo, el CSS 11000 eliminará el servicio del algoritmo de equilibrio de carga. Un tipo avanzado (Capa 5) de señal de mantenimiento es un Protocolo de transferencia de hipertexto (HTTP) que utiliza un HTTP HEAD (predeterminado) o el método HTTP GET. CSS 11000 que ejecuta el software Cisco Web Network Services (WebNS) versión 4.10 o posterior y que utiliza mantenimiento de HTTP espera el paquete de respuesta en un formato específico, como se describe a continuación.

Los servidores ColdFusion (versión 4.5.X y posteriores) o los servidores JRun que se ejecutan detrás de un CSS 11000 no responden, de manera predeterminada, a señales de mantenimiento HTTP CSS 11000 en el formato esperado. Debe configurar dichos servidores para que devuelvan los valores específicos esperados en respuesta a las directivas keepalive de HTTP del CSS 11000. Como opción alternativa, en el CSS 11000 puede utilizar señales de mantenimiento en secuencia utilizando la versión 4.10 o posterior de WebNS.

Información sobre el encabezado HTTP

Lo que sigue es una petición get típica HTTP que es hecha por el buscador Web: 

HTTP: ----- Hypertext Transfer        Protocol -----
HTTP: 
HTTP: Line 1: GET / HTTP/1.1
HTTP: Line 2: Accept: application/msword,image/gif,image/x-xbitmap, imag
HTTP: e/jpeg, image/pjpeg, application/vnd.ms-excel, application/v
HTTP: nd.ms-powerpoint, */*
HTTP: Line 3: Accept-Language: en-us
HTTP: Line 4: Accept-Encoding: gzip, deflate
HTTP: Line 5: User-Agent: Mozilla/4.0 (compatible; MSIE 5.0; Windows NT)
HTTP: Line 6: Host: www.cisco.com
HTTP: Line 7: Connection: Keep-Alive
HTTP: Line 8: 
HTTP: 

Una respuesta del servidor Web se compone de un identificador de la Versión del protocolo, de un código de estado, de una línea de estado de respuesta legible, de los encabezados de respuesta, y de una información para la petición.

HTTP: -----        Hypertext Transfer Protocol -----
HTTP: 
HTTP: Line 1: HTTP/1.1 200 OK
HTTP: Line 2: Date: Mon, 28 Aug 2000 22:52:24 GMT
HTTP: Line 3: Server: Apache/1.3.12 (Unix)
HTTP: Line 4: Transfer-Encoding: chunked
HTTP: Line 5: Content-Type: text/html
HTTP: Line 6: Connection: close
HTTP: Line 7: 
HTTP: Line 8: 1000

Introducción a las Diferencias entre un método HTTP HEAD y un método HTTP GET.

La señal de mantenimiento CSS 11000 HTTP utiliza uno de dos métodos disponibles:

  • HEAD
  • GET

Se especifican mediante el uso del comando method en el modo de configuración Keepalive (config-keepalive).

Cuando se ejecuta una señal de mantenimiento HTTP HEAD en el CSS 11000, se espera un estado 200 OK en el paquete de respuesta del servidor consultado. Si no vuelve a aparecer el estado OK 200, el CSS 11000 considera que el servicio está desconectado. Si el CSS 11000 recibe algún otro código de estado como por ejemplo "404 Object Not Found” o “302 Object Moved”, el CSS 11000 verá esto como una respuesta incorrecta y marcará a este servicio como caído. El método de encabezado es el predeterminado. El CSS11000 no computa un valor de troceo de la referencia para este tipo de keepalive.

Cuando se utiliza una señal de mantenimiento HTTP GET, CSS 11000 no sólo espera ver “200 Status OK” en el paquete de respuesta, sino que también ejecutará una suma de comprobación en el cuerpo de la entidad. La primera vez que el CSS 11000 hace una transmisión de consulta, el servidor ejecutará una suma de verificación en el cuerpo de la entidad y almacenará el valor hash para futuras consultas. Si las respuestas futuras devuelven una AUTORIZACIÓN del estatus 200 y el valor de troceo se calcula que es diferente del valor almacenado, después el servicio se considera abajo. Si el Estado OK 200 no vuelve a aparecer o si aparece pero el valor de hash es distinto del valor de hash de referencia, el CSS 11000 considera que el servicio está inactivo.

Cuando especifica una URL para una señal de mantenimiento HTTP, CSS 11000 calcula un valor hash para la página Web especificada en la URL. Si cambia la página web, el valor hash ya no coincidirá con el valor hash original y el CSS 11000 supone que el servicio está desconectado. Para evitar que CSS 11000 suponga que un servicio no funciona debido a una falta de coincidencia del valor de troceo, indique el método de señal de mantenimiento como principal. Debido a la naturaleza de HTTP GET keepalives y la forma en que se los calcula, no los utilice en páginas que cambian dinámicamente porque las sumas de comprobación cambian constantemente.

Cómo responden los servidores ColdFusion a los Keepalive de HTTP

Los servidores ColdFusiones responden diferentemente a los keepalives HTTP. Una respuesta ColdFusion viene en dos paquetes. ColdFusion generalmente funciona de esta forma:

ColdFusion Server <-------------------> CSS 1100
(1)SYN
(2)SYN ACK 
(3)ACK
(4)HTTP "HEAD/pages/isrunning.cfm"
(5)HTTP data (200 OK) 
(6)HTTP data (????????) 
(7)RST,ACK
(8)RST WIN=0 (?????????) 

Un paquete de respuesta de un servidor ColdFusion parece similar al siguiente:

>- - - - - - - - - - - - - - - - - - - - Frame 4- - - - - - - - - - - - - 
48 54 54 50 2f 31 2e 31 20 32                          | HTTP/1.1 2        
>0040: 30 30 20 4f 4b 0d 0a 53 65 72 76 65 72 3a 20 4d | 00 OK..Server:         
>0050: 69 63 72 6f 73 6f 66 74 2d 49 49 53 2f 34 2e 30 | Microsoft-IIS/4.0 
>0060: 0d 0a 44 61 74 65 3a 20 46 72 69 2c 20 32 35 20 | Date: Fri, 25 
>0070: 41 75 67 20 32 30 30 30 20 31 32 3a 33 32 3a 30 | Aug 2000 12:32:07 GMT.
>- - - - - - - - - - - - - - - - - - - - Frame 5 - - - - - - - - - - - - - 
>0080: 37 20 47 4d 54 0d 0a                            |  
>0040: 70 65 3a 20 74 65 78 74 2f 68 74 6d 6c 0a 0a 3c | 
><<----
>0050: 48 54 4d 4c 3e 0d 0a 3c 48 45 41 44 3e 0d 0a 3c | 
>0060: 42 3e 43 4f 4c 44 46 55 53 49 4f 4e 20 5375 63  | COLDFUSION  
>0070: 63 65 73 73 66 75 6c 6c 79 20 52 75 6e 6e 69 6e | Successfully Running 
>0080: 67 20 3c 2f 42 3e 0d 0a 3c 2f 48 45 41 44 3e 0d |  
>0090: 0a 3c 42 4f 44 59 3e 0d 0a 0d 0a 3c 2f 42 4f 44 | 
>00a0: 59 3e 0d 0a 3c 2f 48 54 4d 4c 3e |      

En la mayoría de los casos, se puede esperar obtener la siguiente salida:

Web Server <--------------------> CSS 11800 
  (1)SYN
  (2)SYN ACK  
  (3)ACK
  (4)HTTP "HEAD/pages/isrunning.cfm"
  (5)HTML data (200 OK)  
  (6)RST,ACK

La señal de mantenimiento HTTP responde, CSS 11000 comprende

Necesidad de los paquetes de contener una contenido-longitud: etiqueta <valor>.

Después de recibir el encabezado de respuesta, el CSS 11000 busca una etiqueta de extensión de contenido para determinar cuánta información entrará en el cuerpo. El CSS 11000 controla la disminución de este valor para determinar si hay una respuesta completa. Esto es imprescindible en los flujos persistentes HTTP 1.1. Si el tipo de respuesta es HTTP 1.0, la extensión del contenido es opcional. El CSS11000 la utilizará si está presente. De lo contrario, el CSS 11000 configura el uIndicatedLen en 0 y controla el cierre de conexión. Por último, se debe tener en cuenta el método de petición para determinar la existencia/inexistencia de un cuerpo de entidad. Si el método de la petición era PISTA, no debe haber un cuerpo de entidad.

El campo del tipo de contenido se debe terminar con 0x0d0a<CR><LF> y no el <LF><LF>.

El CSS11000 espera ver el paquete de respuesta en un paquete, no dos.

El CSS 11000 puede manejar una respuesta de señal de mantenimiento dividida en dos paquetes. Cuando llega la primera trama, el CSS11000 debe asegurarse de que tenga la encabezado entera del HTTP de respuesta así que puede comenzar a procesar la respuesta de keepalive.

La encabezado del HTTP de respuesta se debe permitir atravesar los paquetes y debe terminar en 0x0d0a0d0a <CR><LF><CR><LF>. Sin embargo, si hay encuentros con los servidores que respondieron solamente a la encabezado del HTTP de respuesta que terminó con el <CR><LF>, un CSS11000 que sigue los estándares del RFC2068 soportará cualquiera. Para soportar la fragmentación del encabezado de respuesta y de cualquier adaptador, si el 0x0d0a <CR><LF> es el adaptador del segmento, significando él es los dos caracteres más recientes del paquete, después se asume que éste es el adaptador de la encabezado del HTTP de respuesta.

Los servidores de la fusión en frío terminan el primer paquete (segmento) con 0x0d0a <CR><LF>, así el CSS11000 asume que éste es el extremo de la encabezado del HTTP de respuesta y que intenta procesarla. Debido a que el resto del encabezado se encuentra realmente en el segundo paquete, falla y esto significa que el servicio nunca aparecerá. Idealmente, la respuesta debe ocurrir en un paquete pero si se utilizan dos paquetes el CSS11000 necesita el siguiente:

El primer paquete no se puede terminar con el <CR><LF>. Necesita combinar todos los datos en un solo paquete; o bien, la aplicación necesita asegurarse de que la división entre el paquete 1 y el paquete 2 no se produce en <CR><LF>. Los datos que provienen en dos paquetes podrían encontrar problemas sobre cómo el CSS 11000 analizará ambos paquetes.

Otro problema de URI y ColdFusion de mantenimiento

Cuando se ejecuta HEAD o GET para un archivo que no existe en el servidor ColdFusion, el servidor responderá con un código de respuesta HTTP “200 OK” y un mensaje “404 Object Not Found” en el cuerpo del HTML.

Por ejemplo, aquí está una petición del HTTP HEAD: 

HTTP: ----- Hypertext Transfer Protocol -----
HTTP: 
HTTP: Line 1: HEAD /keepalive.cfm HTTP/1.0
HTTP: Line 2: Connection: Keep-Alive
HTTP: Line 3: User-Agent: Mozilla/4.06 [en] (WinNT;I)
HTTP: Line 4: Accept: image/gif, image/x-bitmap, image/jpeg, image/pjpeg, */*
HTTP: Line 5: Accept-Language: en
HTTP: Line 6: Accept-Charset: iso-8859-1,*,utf-8
HTTP: Line 7: Host: 216.251.240.75

Aquí está una respuesta típica si el archivo de /keepalive.cfm no está presente.

HTTP: 
HTTP: Line 1: HTTP/1.1 200 OK
HTTP: Line 2: Date: Thu, 19 Oct 2000 21:25:51 GMT
HTTP: Line 3: Server: Stronghold/3.0 Apache/1.3.12 C2NetEU/3012 (UNIX) PHP
HTTP: /3.0.16 mod_ssl/2.6.4 OpenSSL/0.9.5a mod_perl/1.22
HTTP: Line 4: Connection: close
HTTP: Line 5: Content-Type: text/html
HTTP: Line 6: Error Occurred While Processing Request
HTTP: Line 7: Error Diagnostic Information
HTTP: Line 8: An error has occurred.   
HTTP: Line 9: .0 404 Object Not Found         

Uso de señales de mantenimiento en secuencia de comandos como solución alternativa

Se pueden utilizar señales de mantenimiento en secuencia de comandos en CSS 11000 mediante WebNS 4.10 y posteriores (cualquier compilación). Búsqueda para la cadena no encontrada de 404 objetos en la respuesta. Predeterminadamente, CSS 11000 utilizará señales de mantenimiento en secuencias de comando para controlar el estado de los servicios estándar tales como el Protocolo simple de transferencia de correo (SMTP) y Netbios. El CSS 11000 le permite a los clientes personalizar sus propias secuencias de comandos, aunque no serán soportadas por el TAC de Cisco. Los clientes deben depurar y solucionar los problemas de sus secuencias de comandos

Nota: Ajuste la configuración de otros servidores de aplicaciones de terceros para hacerla funcionar con un CSS 11000 mediante señales de mantenimiento de HTTP.



Información Relacionada



Document ID: 15048