22.5. 使用外部 Web 服务器作为代理服务器


JBoss EAP 可以使用支持的 HTTP、HTTPS 或 AJP 协议来接受来自外部 Web 服务器的请求,具体取决于外部 Web 服务器配置。

如需了解每个 web 服务器支持的 HTTP 连接器的详情,请参阅 HTTP Connectors 概述。确定要使用的 Web 服务器和 HTTP 连接器后,请参阅适当的部分,以了解有关配置连接器的信息:

有关 HTTP 连接器支持的配置的最新信息,请参阅 JBoss EAP 支持的配置

您还需要确保 JBoss EAP 配置为接受来自外部 Web 服务器的请求

22.5.1. HTTP Connectors 概述

JBoss EAP 能够使用内置于外部 Web 服务器中的负载平衡和集群机制,如 Apache HTTP 服务器、MicrosoftSign 和 Oracle iPlanet 以及 Undertow。JBoss EAP 使用连接器与 Web 服务器通信。这些连接器在 JBoss EAP 的 undertow 子系统中配置。

Web 服务器包括控制 HTTP 请求路由到 JBoss EAP 节点的软件模块。每个模块都因其工作方式和配置方式而异。模块配置为在多个 JBoss EAP 节点之间平衡工作负载,以便在出现故障时将工作负载移到备用服务器。

JBoss EAP 支持多种不同的连接器。您选择的服务器取决于使用的 Web 服务器以及您需要的功能。下表包括了与 JBoss EAP 兼容的各种 HTTP 连接器支持的配置和功能的比较。

注意

有关 HTTP 连接器支持的配置的最新信息,请参阅 JBoss EAP 支持的配置

表 22.1. HTTP Connector 支持的配置
连接器Web 服务器支持的操作系统支持的协议

mod_cluster

Red Hat JBoss Core Services Apache HTTP Server, Red Hat JBoss Web Server Apache HTTP Server, JBoss EAP (Undertow)

Red Hat Enterprise Linux, Microsoft Windows Server, Oracle Solaris

HTTP, HTTPS, AJP, WebSocket

mod_jk

Red Hat JBoss Core Services Apache HTTP Server, Red Hat JBoss Web Server Apache HTTP Server

Red Hat Enterprise Linux, Microsoft Windows Server, Oracle Solaris

AJP

mod_proxy

Red Hat JBoss Core Services Apache HTTP Server, Red Hat JBoss Web Server Apache HTTP Server

Red Hat Enterprise Linux, Microsoft Windows Server, Oracle Solaris

HTTP, HTTPS, AJP

ISAPI 连接器

Microsoft IIS

Microsoft Windows Server

AJP

NSAPI 连接器

Oracle iPlanet Web Server

Oracle Solaris

AJP

表 22.2. HTTP Connector 功能
连接器支持粘性会话适应部署状态

mod_cluster

是。检测应用程序的部署和取消部署,并动态决定根据应用程序是否部署到该服务器上,将客户端请求定向到服务器。

mod_jk

否。只要容器可用,将客户端请求定向到容器,而不考虑应用状态。

mod_proxy

否。只要容器可用,将客户端请求定向到容器,而不考虑应用状态。

ISAPI 连接器

否。只要容器可用,将客户端请求定向到容器,而不考虑应用状态。

NSAPI 连接器

否。只要容器可用,将客户端请求定向到容器,而不考虑应用状态。

22.5.2. Apache HTTP 服务器

现在,一个独立的 Apache HTTP 服务器捆绑包作为 Red Hat JBoss Core Services 的单独下载。这简化了安装和配置,并允许获得更加一致的更新体验。

22.5.2.1. 安装 Apache HTTP 服务器

有关安装 Apache HTTP 服务器的详情,请参考 JBoss Core Services Apache HTTP Server 安装指南

22.5.3. 接受来自外部 Web 服务器的请求

JBoss EAP 不需要任何特殊配置,即可开始接受代理服务器的请求,只要配置了 correct protocol 处理程序,如 AJP、HTTP 或 HTTPS。

如果代理服务器使用 mod_jk、mod_proxy、ISAPI 或 NSAPI,它将请求发送到 JBoss EAP,JBoss EAP 仅提供响应。使用 mod_cluster 时,您还必须配置网络,以允许 JBoss EAP 将信息(如其当前负载、应用程序生命周期事件和健康状态)发送到代理服务器,以帮助它确定路由请求的位置。有关配置 mod_cluster 代理服务器的更多信息,请参阅 mod_cluster HTTP Connector

更新 JBoss EAP 配置

在以下步骤中,将示例中的协议和端口替换为您需要配置的。

  1. 配置 Undertow 的 instance-id 属性。

    外部 Web 服务器使用 instance-id 在连接器配置中标识 JBoss EAP 实例。使用以下管理 CLI 命令,在 Undertow 中设置 instance-id 属性。

    /subsystem=undertow:write-attribute(name=instance-id,value=node1)

    在上例中,外部 Web 服务器将当前的 JBoss EAP 实例标识为 node1

  2. 将所需的监听程序添加到 Undertow。

    若要让外部 Web 服务器能够连接 JBoss EAP,Undertow 需要侦听器。每个协议需要自己的监听程序,该监听程序与套接字绑定相关联。

    注意

    根据您的所需协议和端口配置,可能不需要这一步。HTTP 侦听器在所有默认 JBoss EAP 配置中配置,如果您使用 hafull-ha 配置文件,则配置了 AJP 侦听器。

    您可以通过读取默认服务器配置来检查所需的监听程序是否已配置:

    /subsystem=undertow/server=default-server:read-resource

    若要向 Undertow 添加侦听器,它必须具有套接字绑定。套接字绑定添加到服务器或服务器组使用的套接字绑定组中。以下管理 CLI 命令将绑定到端口 8009ajp 套接字绑定添加到 standard-sockets 套接字绑定组中

    /socket-binding-group=standard-sockets/socket-binding=ajp:add(port=8009)

    以下管理 CLI 命令利用 ajp 套接字绑定向 Undertow 添加 ajp 侦听器:

    /subsystem=undertow/server=default-server/ajp-listener=ajp:add(socket-binding=ajp)
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.