【问题标题】:IBM HTTP Server, routing calls to WebsphereIBM HTTP Server,将调用路由到 Websphere
【发布时间】:2014-11-13 20:30:43
【问题描述】:

我一直在苦苦挣扎,但我无法提出合适的解决方案。

情况是这样的:

主机 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 在另一个端口上运行,为什么我可以访问它。

所以,如果有人可以给我一些指导,那就太好了。

这是虚拟主机:

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

【问题讨论】:

  • 您有 1 台还是 2 台应用服务器?我很困惑为什么你在同一个虚拟主机中有两个 HTTPS 传输,但你认为你的应用程序只与其中一个相关联。另外,你从来没有说过当你通过 SSL 访问你自己的上下文根到网络服务器时发生了什么。
  • “同一虚拟主机中的两个 HTTPS 传输”是什么意思。这是我第一次做这样的事情。有 1 个应用程序服务器,而不是 2 个。所以主机 1 包含 1 个 HTTP 服务器,主机 2 包含 Websphere(应用程序服务器)。
  • 通常,当您添加第二个应用程序时,它只会在与任何先前应用程序相同的端口上运行,映射到相同的“default_host”虚拟主机,但在新的上下文根下。不知何故,你让它变得比必要的复杂。

标签: http ssl websphere


【解决方案1】:

事件虽然您有 2 个端口(我假设您创建了自定义传输链并为其分配了 9044 端口),但您将该端口添加到 default_host,这在插件中的 VirtualHostGroup 中可见。您的应用程序可能也映射到default_host,因此它可以使用所有端口 - 9080、9443 和 9044。第二个传输应该在您的服务器的插件配置中可见,端口为 9044。因为它也是 ssl 传输插件可以选择那个将请求路由到您的服务器。没有办法强制插件使用特定端口与给定应用程序的 WAS 通信。

但是您没有具体说明您真正想要实现的目标?因为您的应用现在应该可以通过 https 访问了。

【讨论】:

  • 我想要实现的是:转到HOST1/app 并到达HOST2:9044/app。另外,您能否详细说明一下您的帖子的其余部分?
  • 该应用程序仅在端口 9044 btw 上可用,在其他端口上不可用。
  • @user1905189 然后从 plugin-cfg.xml 中删除与 9443 相关的传输,您将确定使用 9044。插件对所有应用使用一种 SSL 传输和一种 HTTP 传输。
  • @user1905189 您是否为 9044 创建了单独的虚拟主机?
猜你喜欢
  • 2010-11-03
  • 1970-01-01
  • 1970-01-01
  • 2018-09-22
  • 1970-01-01
  • 2012-05-25
  • 2015-06-07
  • 1970-01-01
  • 2015-04-19
相关资源
最近更新 更多