我已经苦苦挣扎了一段时间,但是我无法提出适当的解决方案。
这种情况:
主机1-IBM HTTP Server,定制工具箱和WAS插件
主机2-WAS +应用程序
这些是我执行的配置插件并从Websphere传播它的步骤:
1.我使用了“定制工具箱”,选择了正确的WAS插件目录并创建了一个新的Web服务器插件。
2.我将新的configureSERVER.bat复制到主机2上的应用程序服务器,并配置了当前配置文件。
3.在主机1上,我创建了一个管理员帐户。
当我在主机2上打开WAS控制台时,可以看到实际的Web服务器,一切正常。当我选择“生成插件”和“传播插件”时,没有任何错误。我检查了HTTP Server,的确,我的plugin-cfg.xml整洁地创建并存在。
为确保一切正常,我在主机1上打开了http://HOST1/snoop
,并看到了正确的诊断信息。到目前为止,一切都很好。
之后,我部署了在端口9044上运行的应用程序。但是,该应用程序在HTTPS上运行,因此我们需要确保IBM HTTP Server接受SSL连接。我生成了自己的自签名证书,将其导入httpd.conf中,然后重新启动服务器。 (如果有人感兴趣,我将在操作方法上提供更多详细信息)。
现在,当我打开https://HOST1/snoop
时,我可以看到诊断信息,这是个好消息。这意味着它接受https上的连接并将其重新路由到主机2。但是问题是,我不知道如何访问运行在端口9044上的应用程序。
当我运行snoop-servlet时,令人困惑的是细节。
当我通过http(因此没有SSL)运行它时,输出为:
本地地址XXX.XXX.XXX.XXX
本地主机XXXXXXXXXX
本地端口9080
正确,因为该特定Servlet的Websphere端口为9080。但是,当我打开https://HOST1/snoop
(因此通过SSL)时,将生成以下内容:
本地地址XXX.XXX.XXX.XXX
本地主机XXXXXXXXXX
本地端口9044
因此,显然,443被重新路由到第二台主机上的9044,但是Snoop servlet在9443而不是9044上运行(这是我的应用程序)。但是,然后我想知道,如果它在另一个端口上运行,为什么我可以访问该servlet。
因此,如果有人可以给我一些指导,那将是很好的。
这是VHOST:
<VirtualHostGroup Name="default_host">
<VirtualHost Name="*:9080"/>
<VirtualHost Name="*:80"/>
<VirtualHost Name="*:9443"/>
<VirtualHost Name="*:5060"/>
<VirtualHost Name="*:5061"/>
<VirtualHost Name="*:443"/>
<VirtualHost Name="*:9044"/>
</VirtualHostGroup>
最佳答案
尽管您有2个端口(假设您创建了自定义传输链并为其分配了9044端口),但是您将该端口添加到了default_host
,该端口在插件的VirtualHostGroup
中可见。您的应用程序也可能已映射到default_host
,因此可以使用所有端口-9080、9443和9044进行访问。第二传输应该在端口9044的服务器的插件配置中可见。由于它也是ssl传输插件,选择该请求将请求路由到您的服务器。无法强制插件使用特定端口与给定应用程序进行WAS通信。
但是,您没有指定要实际实现的目标吗?由于您的应用现在应该可以通过https访问。
关于http - IBM HTTP Server,将调用路由到Websphere,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26917822/