我在 glassfish 3.1.1 和 iPlanet Web Server 上配置了具有两个实例的集群作为负载均衡器(在同一台机器上)。对于 glassfish 提供的测试应用程序,一切正常(并且此应用程序启用了会话复制)。
但是当我尝试让自己的应用程序工作时,会发生以下情况:当我在特定实例的端口(即 28080 和 28081)上发送请求时它会响应,但是当我尝试通过负载均衡器(端口 81)发送请求时我得到错误 404。我的应用程序尚未启用会话复制,但它可以建立连接并为每个实例创建另外两个会话。我想用负载均衡器获得类似的效果。
所以我想确定:
- 负载均衡器是否需要会话复制才能正常工作?
- 有谁知道这个错误的任何其他原因?
来自 iPlanet 日志的消息:
[23/Aug/2012:05:44:16] failure ( 4120) myHost: for host 127.0.0.1 trying to GET /myApp/login.jsp, service-j2ee reports: PWC6117: File "c:/webserver7/https-myHost/docs/myApp/login.jsp" not found
附加结论:
(81 - iPlanet 上的 http-listener 端口)
当我发送时GET http://localhost:81/testApp
,负载均衡器将其传递给 glassfish 并返回正确的站点。但是当我对我的测试应用程序尝试相同的操作时,GET http://localhost:81/myApp
iPlanet 在它自己的资源中查找这个站点(文档目录如上面的日志)
myHost-obj.conf 的片段:
<Object name="default">
AuthTrans fn="match-browser" browser="*MSIE*" ssl-unclean-shutdown="true"
NameTrans fn="name-trans-passthrough" name="lbplugin" config-file="C:/WebServer7/https-myHost/config/loadbalancer.xml"
NameTrans fn="assign-name" name="perf" from="/.perf"
NameTrans fn="ntrans-j2ee" name="j2ee"
NameTrans fn="pfx2dir" from="/mc-icons" dir="C:/WebServer7/lib/icons" name="es-internal"
PathCheck fn="uri-clean"
PathCheck fn="check-acl" acl="default"
PathCheck fn="find-pathinfo"
PathCheck fn="find-index-j2ee"
PathCheck fn="find-index" index-names="index.html,home.html,index.jsp"
ObjectType fn="type-j2ee"
ObjectType fn="type-by-extension"
ObjectType fn="force-type" type="text/plain"
Service method="(GET|HEAD)" type="magnus-internal/directory" fn="index-common"
Service method="(GET|HEAD|POST)" type="*~magnus-internal/*" fn="send-file"
Service method="TRACE" fn="service-trace"
Error fn="error-j2ee"
AddLog fn="flex-log"
</Object>