有些事情我已经苦恼了一段时间,但我无法想出一个合适的解决方案。
情况是这样的:
主机 1 - IBM HTTP 服务器、定制工具箱和 WAS 插件
主机 2 - WAS + 应用程序
这些是我为配置插件并从 Websphere 传播它而执行的步骤:
1. 我使用了自定义工具箱,选择了正确的 WAS 插件目录并创建了一个新的 Web 服务器插件
2. 我将新的 configureSERVER.bat 复制到主机 2 上的应用程序服务器,并配置了当前配置文件。
3. 在主机 1 上,我创建了一个管理员帐户。
当我在主机 2 上打开 WAS 控制台时,我可以看到实际的 Web 服务器,一切正常。当我选择“生成插件”和“传播插件”时,我没有收到任何错误。我检查了 HTTP 服务器,确实,我的 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/