网络应用服务 : Cisco CSS 11500 系列内容服务交换机

使 Cisco CSS 11000 HTTP 保活和 ColdFusion 服务器一同工作

2016 年 10 月 24 日 - 机器翻译
其他版本: PDFpdf | 英语 (2015 年 8 月 22 日) | 反馈


目录

简介
了解 HTTP 包头
了解HTTP HEAD和HTTP GET方法之间的差异
ColdFusion服务器如何回应对HTTP Keepalive
CSS 11000 理解的 HTTP 持续连接响应
另一个Keepalive URI和ColdFusion问题
用脚本保活解决问题
相关的思科支持社区讨论
相关信息


简介

Cisco CSS 11000系列内容服务交换机周期地传送保活信息对服务确定服务的状态是否运行,中断或者死。您能使用Keepalive,当确保服务的健康检查是UP,以便CSS 11000能使用服务负载均衡。否则CSS 11000从负载均衡算法取消服务。先进(使用一个HTTP HEAD Keepalive的层5)类型是超文本传输协议(HTTP) (默认)或HTTP GET方法。运行软件Cisco使用HTTP持续连接的WEB网络服务(WebNS)软件版本4.10或以上的CSS 11000如下所述期待在一个特定格式的响应数据包。

在CSS 11000后运行的ColdFusion服务器(版本4.5.X和以上)默认情况下或JRun服务器不回应对CSS 11000在预计格式的HTTP Keepalive。您必须配置这样服务器返回特定预期值以回应从CSS 11000的HTTP Keepalive。作为应急方案,您在CSS 11000能使用脚本Keepalive,使用WebNS 4.10和以后。

了解 HTTP 包头

下列是由Web浏览器做的一典型的HTTP GET请求: 

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: 

从Web服务器的一答复组成协议版本标识符、状态码、人类易读的答复状态行、应答标题和信息请求的。

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

了解HTTP HEAD之间的差异和HTTP GET方法

CSS 11000 HTTP持续连接使用两个可用的方法之一:

  • HEAD
  • GET

他们指定通过使用method命令,当在Keepalive配置模式时(config-keepalive)。

HTTP HEAD保活在CSS 11000时发出, 200状态OK在查询从服务器的响应数据包预计。如果200 OK状态没有返回, CSS 11000考虑服务下来。如果CSS 11000接收其他状态码例如移动的404 Object Not Found302对象, CSS 11000将观看此作为一不正确答复并且指示此服务作为下来。顶头方法是默认。CSS 11000不计算此种Keepalive的一个参考Hash值。

当使用时HTTP GET Keepalive, CSS 11000不仅期望发现在响应数据包的200状态OK,但是也将运行在实体主体的一校验和。第一次CSS 11000出去查询,服务器将运行在实体主体的一校验和并且存储将来查询的该Hash值。如果将来答复通过上一步200状态OK,并且计算的Hash值是与存储的值不同,则服务考虑得下来。如果200状态OK没有返回,或者,如果200 OK状态返回,但是Hash值是与参考Hash值不同, CSS 11000考虑服务下来。

当您指定HTTP持续连接的时URL, CSS 11000计算在URL指定的网页的一个Hash值。如果网页更改, Hash值不再匹配原始散列值,并且CSS 11000假设,服务发生故障。要防止CSS 11000假设,服务发生故障由于Hash值不匹配,请指定保活方法作为题头。由于HTTP GET Keepalive和方式的本质,因为他们的校验和经常,更改他们在动力变化的页计算,不使用他们。

ColdFusion服务器如何回应对HTTP Keepalive

ColdFusion服务器不同地回应对HTTP Keepalive。ColdFusion答复进来两数据包。ColdFusion象这样通常运作:

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 (?????????) 

从ColdFusion服务器的一响应数据包看起来类似于以下:

>- - - - - - - - - - - - - - - - - - - - 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 |      

在大多数情况下,您能期望发现以下输出:

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

CSS 11000 理解的 HTTP 持续连接响应

包含一内容长度的数据包需要:<value>标记。

在接收应答标题以后,内容长度标记的CSS 11000搜索能确定多少数据将进来正文。CSS 11000监控减少此值确定是否有一完整答复。这是必要的在HTTP 1.1不变流。如果答复类型是HTTP 1.0,内容长度可选。如果存在, CSS 11000将使用它。否则, CSS 11000设置uIndicatedLen0和注意连接关闭。 最后,必须考虑请求方法确定实体主体的存在/不存在的事。如果请求方法顶头,不应该有实体主体。

应该终止内容类型字段与而不是0x0d0a<CR><LF> <LF><LF>

CSS 11000期望发现在一数据包的响应数据包,没有两。

CSS 11000能处理在两数据包间拆分的Keepalive响应。当第一帧到达时, CSS 11000必须保证有整个HTTP响应报头,因此能开始处理Keepalive响应。

0x0d0a0d0a <CR><LF><CR><LF>应该允许HTTP响应报头跨过数据包,并且应该结束。然而,如果有遭遇用只响应对HTTP响应报头终止与<CR><LF>的服务器跟随的CSS 11000 RFC2068标准将支持二者之一。要支持应答标题和任一终结器的分段,如果0x0d0a <CR><LF>是分段终结器,含义他们是在数据包的最后两个字符,然后假设,这是HTTP响应报头的终结器。

冷聚变服务器终止第一数据包(分段)有0x0d0a <CR><LF>的,因而CSS 11000假设这是HTTP响应报头的结尾并且设法处理它。由于报头的其余确实在第二数据包,发生故障,含义服务不会出来。理论上来讲,答复在一数据包应该发生,但是,如果使用两数据包CSS 11000需要以下:

第一数据包不可能终止与<CR><LF>。它在一数据包需要得到所有数据被组合或应用程序需要保证在数据包1和数据包2之间的已分解不发生在<CR><LF>。进来两数据包的数据也许遇到与CSS 11000如何的问题将解析两数据包。

另一个Keepalive URI和ColdFusion问题

当HEAD或GET做到不存在于ColdFusion服务器的文件,服务器将回应HTTP响应代码200好和在HTML正文的404 Object Not Found消息。

例如,这是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

这是一典型的答复,如果/keepalive.cfm文件不存在。

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         

用脚本保活解决问题

您在CSS 11000能使用脚本Keepalive使用WebNS 4.10以上(其中任一修造)。搜索在答复的404 Object Not Found字符串。默认情况下, CSS 11000将使用罐装脚本Keepalive检查标准服务健康例如简单邮件传输协议(SMTP)和Netbios。CSS 11000允许客户定制他们自己的脚本,虽然他们不会由Cisco TAC支持。客户必须调试和排除他们自己的脚本故障。

注意:通过使用HTTP Keepalive,调整其他第三方应用程序应用程序服务器的配置使它与CSS 11000工作。



相关信息



Document ID: 15048