第 17 章 Web 子系统

17.1. 配置 Web 子系统

您可以用基于 Web 的管理控制台或命令行管理 CLI 配置 Web 子系统的大多数方面。我们会按管理控制台里出现的顺序逐一解释每个设置,同时也提供对管理 CLI 命令的解释。
用管理控制台查看 Web 子系统

要使用基于 Web 的管理控制台配置 Web 子系统,请点击屏幕顶部的的 Configuration 标签页。展开 Subsystems 菜单,然后展开 Web 菜单。屏幕会显示 Web 子系统的每个可配置部分。

注意

对于受管域,只有您的配置集是 hafull-ha 时,或者如果您用 standalone-hastandalone-full-ha 配置集启动独立服务器时,mod_cluster 组件才可用;mod_cluster 配置的详情请参考 第 19.5.2 节 “配置 mod_cluster 子系统”
配置 JSP 容器、HTTP 连接器和虚拟 HTTP 服务器

要配置 JSP 容器、HTTP 连接器和虚拟 HTTP 服务器,请点击 Servlet/HTTP 菜单条目。点击 Edit 按钮修改任何值。点击 Advanced 按钮查看高级选项。下面解释了这些选项。HTTP 连接器和虚拟服务器的选项显示在单独的表里。

表 17.1. Servlet/HTTP 配置选项

选项 描述 CLI 命令
Instance ID
这个标识符用来在负载平衡场景里启用会话关联性(Session Affinity)。这个标识符必须在群集里所有 JBoss EAP 服务器里是唯一的,它将附加到生成的会话标识符后面。这允许前端代理将专有会话转发到相同的 JBoss EAP 实例里。默认情况下不会设置实例 ID。
/profile=full-ha/subsystem=web:write-attribute(name=instance-id,value=worker1)
Disabled?
如果为 true,禁用 JSP 容器。默认是 false。如果您没有使用任何 JSP,这会很有用。
/profile=full-ha/subsystem=web/configuration=jsp-configuration/:write-attribute(name=disabled,value=false)
Development?
如果为 true,则启用 Development Mode,这会产生更多冗余的调试信息。默认是 false
/profile=full-ha/subsystem=web/configuration=jsp-configuration/:write-attribute(name=development,value=false)
Keep Generated?
如果这个选项是隐藏的,点击 Advanced 查看这个选项。如果为 true 则保持生成的 Servlets。它默认是true
/profile=full-ha/subsystem=web/configuration=jsp-configuration/:write-attribute(name=keep-generated,value=true)
Check Interval?
如果这个选项是隐藏的,点击 Advanced 查看这个选项。这个值以秒为单位,它确定用后台进程检查 JSP 更新的频率。默认值是 0
/profile=full-ha/subsystem=web/configuration=jsp-configuration/:write-attribute(name=check-interval,value=0)
Display Source?
如果这个选项是隐藏的,点击 Advanced 查看这个选项。如果为 true,当 runtime 错误发生时会显示 JSP 源码片段。默认值是 true
/profile=full-ha/subsystem=web/configuration=jsp-configuration/:write-attribute(name=display-source-fragment,value=true)
对于负载平衡和 HA 群集,AJP 和 HTTP 连接器使用 mod_clustermod_jkmod_proxyISAPINSAPI。要配置连接器,请选择 Connectors 标签并点击 Add。要删除连接器,请选中这个条目并点击 Remove。要编辑连接器,选中后点击 Edit
如下列命令所示,当您用管理 CLI 创建新的连接器时,可以立即设置所需选项。

例 17.1. 创建新的连接器

/profile=full-ha/subsystem=web/connector=ajp/:add(socket-binding=ajp,scheme=http,protocol=AJP/1.3,secure=false,name=ajp,max-post-size=2097152,enabled=true,enable-lookups=false,redirect-port=8433,max-save-post-size=4096)

表 17.2. 连接器选项

选项 描述 CLI 命令
Name
连接器的唯一名称,用于显示目的。
/profile=full-ha/subsystem=web/connector=ajp/:read-attribute(name=name)
Socket Binding
连接器要绑定的命名套接字绑定。套接字绑定是套接字名称和网络端口之间的映射。套接字绑定是对每个独立服务器配置的,对于受管域则通过套接字绑定组进行配置。套接字绑定组应用于服务器组。
/profile=full-ha/subsystem=web/connector=ajp/:write-attribute(name=socket-binding,value=ajp)
Scheme
Web 连接器 scheme,如 HTTP 或 HTTPS。
/profile=full-ha/subsystem=web/connector=ajp/:write-attribute(name=scheme,value=http)
Protocol
要使用的 Web 连接器协议,如 AJP 或 HTTP。
/profile=full-ha/subsystem=web/connector=ajp/:write-attribute(name=protocol,value=AJP/1.3)
Enabled
是否启用这个 Web 连接器。
/profile=full-ha/subsystem=web/connector=ajp/:write-attribute(name=enabled,value=true)
Redirect Port
用来指定在重定向时使用的端口号。常用的重定向端口是安全端口(https)或 AJP 连接器 。
/profile=full-ha/subsystem=web/connector=http:write-attribute(name=redirect-port,value=8443)
Redirect Binding
重定向绑定(Redirect binding)的行为和重定向端口类似,除了它要求在其“值”里指定套接字绑定名称而不是端口号。redirect-binding 提供更高的配置灵活性,因为它允许使用预定义的特定套接字绑定端口(HTTPS、AJP 等)。它导致和 redirect-port 选项相同的结果。
/profile=full-ha/subsystem=web/connector=http:write-attribute(name=redirect-binding,value=https)
要配置虚拟服务器,请点击 Virtual Servers 标签页。请用 Add 按钮来添加新的虚拟服务器。要编辑或删除虚拟服务器,选中相关条目并点击 EditRemove 按钮。
如下列命令所示,当您用管理 CLI 添加新的虚拟服务器时,可以立即设置所需选项。

例 17.2. 添加新的虚拟服务器

/profile=full-ha/subsystem=web/virtual-server=default-host/:add(enable-welcome-root=true,default-web-module=ROOT.war,alias=["localhost","example.com"],name=default-host)

表 17.3. 虚拟服务器选项

选项 描述 CLI 命令
Name
虚拟服务器的唯一名称,用于显示目的。
/profile=full-ha/subsystem=web/virtual-server=default-host/:read-attribute(name=name)
Alias
应该匹配这个虚拟服务器的主机名的列表。在管理控制台里,请为每一行使用一个主机名。
/profile=full-ha/subsystem=web/virtual-server=default-host/:write-attribute(name=alias,value=["localhost","example.com"])
Default Module
模块里的 web 应用程序应该部署在虚拟服务器的根节点,且 HTTP 请求里没有给出目录时将显示。
/profile=full-ha/subsystem=web/virtual-server=default-host/:write-attribute(name=default-web-module,value=ROOT.war)