0

我在 glassfish 3.1.1 和 iPlanet Web Server 上配置了具有两个实例的集群作为负载均衡器(在同一台机器上)。对于 glassfish 提供的测试应用程序,一切正常(并且此应用程序启用了会话复制)。

但是当我尝试让自己的应用程序工作时,会发生以下情况:当我在特定实例的端口(即 28080 和 28081)上发送请求时它会响应,但是当我尝试通过负载均衡器(端口 81)发送请求时我得到错误 404。我的应用程序尚未启用会话复制,但它可以建立连接并为每个实例创建另外两个会话。我想用负载均衡器获得类似的效果。

所以我想确定:

  1. 负载均衡器是否需要会话复制才能正常工作?
  2. 有谁知道这个错误的任何其他原因?

来自 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/myAppiPlanet 在它自己的资源中查找这个站点(文档目录如上面的日志)

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

1 回答 1

0

首先,如果您正在运行 Load Balancer 插件,那么您可能有一份支持合同(在将插件投入生产之前需要 GlassFish 许可证)。如果是这样,致电支持是一个不错的选择。

要回答您的第一个问题,负载均衡器不需要会话复制即可工作。

作为一个无耻的插件,我有一个由5 部分组成的 youtube 系列来设置它。您可以跳过有关下载和安装的视频,直接进入设置/配置/测试。根据您的描述,我怀疑问题不是插件本身,而是 loadbalancer.xml 配置。查看 loadbalancer.xml 并查看是否配置了 myApp。

希望这可以帮助。

于 2012-08-23T17:26:53.000 回答