我有一个名为“ARI”的Java Servlet,它从归档数据库中检索数据,并从该数据库返回一个XML有效载荷。
我们在虚拟服务器上运行这个servlet的多个实例,并且可以通过不同的端口号访问,如下所示:
testserver.co.uk:61061/aricp/ari
testserver.co.uk:61062/aricp/ari
这两个servlet都可以直接从客户端直接访问,这里是客户端和服务器之间通过数据包捕获进行的示例对话。
成功的HTTP请求:
POST / aricp / ari HTTP / 1.1 Accept-Charset:UTF-8
内容types:application / x-www-form-urlencoded; charset = UTF-8
用户代理:Java / 1.6.0_25
主持人:testserver.co.uk:61061
接受:text / html,image / gif,image / jpeg,*; q = .2, / ; Q = 0.2
连接:保持活力
内容长度:11
ID = 1-134ISR
请注意请求中的POSTvariables“id”
成功的回应
HTTP / 1.1 200 OK
服务器:Sun-ONE-Web-Server / 6.1
date:2013年1月8日星期二17:48:49 GMT
内容types:text / html
传输编码:分块
03a6
*成功的HTTP请求服务器日志*
[09 / Jan / 2013:10:25:33]罚款(16359):对于主机10.232.191.87尝试GET / aricp / ari,ntrans-j2ee报告:将上下文“/ aricp”中的uri“/ ari” “ARI”
所以可以直接发送请求到我们的servlet,但是如果我们使用ZEUS ZXTM来间接处理来自客户端的请求到我们的servlet的所有实例,它就不起作用。
这里是一个失败的HTTP请求,请注意主机地址的区别,因为ZEUS是中介。
ZEUS失败的HTTP请求
POST / aricp / ari HTTP / 1.1 Accept-Charset:UTF-8
内容types:application / x-www-form-urlencoded; charset = UTF-8
用户代理:Java / 1.6.0_25
主持人:zeus.co.uk:61061
接受:text / html,image / gif,image / jpeg,*; q = .2, / ; Q = 0.2
连接:保持活力
内容长度:11
ID = 1-PUZK7D
ZEUS失败的HTTP响应
HTTP / 1.1 404未find
服务器:Sun-ONE-Web-Server / 6.1
date:2013年1月8日星期二18:05:45 GMT
内容长度:292
内容types:text / html
当使用ZEUS时,Web服务器无法将来自ZEUS的请求解释为servlet请求,而是似乎将请求URI解释为字面上的文件path,并且找不到404。
ZEUS失败的HTTP请求服务器日志
[09 / Jan / 2013:10:50:45] warning(16886):for host 10.232.184.53 GET / aricp / ari,send-file reports:HTTP4142:找不到/ u02 / SunONE61060 / docs / aricp / ari(找不到文件)
正如你所看到的,它将uri视为目录path而不是应用程序path。
这是一个很奇怪的问题。
我已经尝试过的东西
所以总的来说,它是这样工作的很好:
客户端 – >服务器
但是,这样做是不行的:
客户端–ZEUS – >服务器
我正要去刷新一个新的虚拟服务器的安装,看看会发生什么。
任何想法或理论的欢迎。
我不确定为什么你只有一个后端服务器,也许它只是一个testing设置。
ZXTM是一个function强大的负载平衡器,目前看来你或多或less地把它用作反向代理。
无论如何,你通常这样设置的方式是:
– 创build一个像myapp.example.com一样的DNSlogging,并将其指向ZXTM群集的stream量IP
– 设置您的后端应用程序来听myapp.example.com
– 在使用stream量IP的ZXTM集群中创build虚拟服务器
– 在ZXTM集群中创build一个新池,并添加testserver.co.uk:61061
– 将新池分配给创build的虚拟服务器
然后您可以通过myapp.example.com访问您的应用程序。
您仍然可以直接在后端节点上访问应用程序(例如,用于监视目的),但根据应用程序的工作方式,您可能需要为此调整主机头。