22.5. 使用外部 Web 服务器作为代理服务器
JBoss EAP 可以接受使用受支持的 HTTP、HTTPS 或 AJP 协议的来自外部 Web 服务器的请求,具体取决于外部 Web 服务器配置。
如需了解每个 web 服务器支持的 HTTP 连接器的详情,请参阅 HTTP Connectors 概述。当您决定使用哪个 Web 服务器和 HTTP 连接器后,请参阅适当的部分以了解有关配置连接器的信息:
- 请参阅 Apache HTTP Server 的 mod_cluster、mod_jk 或 mod_proxy 部分。
- 请参阅 Microsoft conditional 的 ISAPI 连接器 部分。
- 请参阅 Oracle iPlanet Web 服务器的 NSAPI connector 部分。
有关 HTTP 连接器支持的配置的最新信息,请参阅 JBoss EAP 支持的配置。
您还需要确保 JBoss EAP 配置为接受来自外部 Web 服务器 的请求。
22.5.1. HTTP 连接器概述 复制链接链接已复制到粘贴板!
JBoss EAP 能够利用内置于外部 Web 服务器的负载平衡和集群机制,如 Apache HTTP 服务器、Microsoft play 和 Oracle iPlanet 以及 Undertow。JBoss EAP 使用连接器与 Web 服务器通信。这些连接器在 JBoss EAP 的 undertow 子系统中配置。
Web 服务器包括软件模块,用于控制 HTTP 请求路由到 JBoss EAP 节点的方式。这些模块各自因其工作方式和配置方式而异。模块配置为在多个 JBoss EAP 节点之间平衡工作负载,以便在故障事件或两者时将工作负载移到备用服务器。
JBoss EAP 支持多种不同的连接器。您选择的选项取决于使用的 Web 服务器以及您需要的功能。下表包括了与 JBoss EAP 兼容的各种 HTTP 连接器支持的配置和功能的比较。
有关使用 JBoss EAP 8.0 作为多平台负载平衡器的更多信息,请参阅使用 mod_cluster 将 Undertow 配置为负载平衡器。
有关 HTTP 连接器支持的配置的最新信息,请参阅 JBoss EAP 支持的配置。
| 连接器 | Web 服务器 | 支持的操作系统 | 支持的协议 |
|---|---|---|---|
| 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 | HTTP, HTTPS, AJP, WebSocket | |
| Red Hat JBoss Core Services Apache HTTP Server, Red Hat JBoss Web Server Apache HTTP Server | Red Hat Enterprise Linux, Microsoft Windows Server | AJP | |
| Red Hat JBoss Core Services Apache HTTP Server, Red Hat JBoss Web Server Apache HTTP Server | Red Hat Enterprise Linux, Microsoft Windows Server | HTTP, HTTPS, AJP | |
| Microsoft IIS | Microsoft Windows Server | AJP | |
| Oracle iPlanet Web Server | AJP |
| 连接器 | 支持粘性会话 | 适应部署状态 |
|---|---|---|
| 是 | 是。检测部署和取消部署应用程序,并根据应用程序是否部署到该服务器上,动态决定是否将客户端请求定向到服务器。 | |
| 是 | 否。只要容器可用,将客户端请求定向到容器,无论应用状态如何。 | |
| 是 | 否。只要容器可用,将客户端请求定向到容器,无论应用状态如何。 | |
| 是 | 否。只要容器可用,将客户端请求定向到容器,无论应用状态如何。 | |
| 是 | 否。只要容器可用,将客户端请求定向到容器,无论应用状态如何。 |
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 不需要任何特殊配置来开始接受来自代理服务器的请求,只要配置了正确的协议处理程序,如 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 配置
在以下步骤中,将示例中的协议和端口替换为您需要配置的协议和端口。
流程
配置 Undertow 的
instance-id属性。外部 Web 服务器使用
instance-id在连接器配置中标识 JBoss EAP 实例。使用以下管理 CLI 命令,在 Undertow 中设置instance-id属性:/subsystem=undertow:write-attribute(name=instance-id,value=node1)
/subsystem=undertow:write-attribute(name=instance-id,value=node1)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在上例中,外部 Web 服务器将当前的 JBoss EAP 实例标识为
node1。将所需的监听程序添加到 Undertow。
为了让外部 Web 服务器能够连接到 JBoss EAP,Undertow 需要侦听器。每个协议都需要其自身的监听程序,它绑定到套接字绑定。
注意根据您的协议和端口配置,此步骤可能并不需要。HTTP 侦听器配置在所有默认的 JBoss EAP 配置中,如果您使用 ha 或 full-ha 配置文件,则会配置 AJP 侦听器。
您可以通过读取默认服务器配置来检查所需的监听程序是否已配置:
/subsystem=undertow/server=default-server:read-resource
/subsystem=undertow/server=default-server:read-resourceCopy to Clipboard Copied! Toggle word wrap Toggle overflow 若要向 Undertow 添加侦听器,它必须具有套接字绑定。套接字绑定添加到服务器或服务器组使用的套接字绑定组中。以下管理 CLI 命令会向
standard-sockets套接字绑定添加绑定到端口8009的ajp套接字绑定。/socket-binding-group=standard-sockets/socket-binding=ajp:add(port=8009)
/socket-binding-group=standard-sockets/socket-binding=ajp:add(port=8009)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下管理 CLI 命令利用
ajp套接字绑定向 Undertow 添加ajp侦听器:/subsystem=undertow/server=default-server/ajp-listener=ajp:add(socket-binding=ajp)
/subsystem=undertow/server=default-server/ajp-listener=ajp:add(socket-binding=ajp)Copy to Clipboard Copied! Toggle word wrap Toggle overflow