在 JBoss 应用服务器(包括 WildFly 及其前身 JBoss AS 7+)中,设置域名主要涉及修改服务器配置,使服务器能够根据特定域名响应请求。核心配置文件是 standalone.xml(单机模式)或 domain.xml(域模式),其中 Web 子系统(Undertow)负责处理 HTTP 请求的虚拟主机映射。以下步骤基于 WildFly 27+(即 JBoss 社区最新版本),但同样适用于早期 JBoss AS 7/8 及 WildFly 8-26 系列。

1. 确定监听端口与协议:首先确保 JBoss 的 HTTP 连接器(http-listener)已正确配置。在 standalone.xml 中找到如下片段:
<http-listener name="default" socket-binding="http" redirect-socket="https" enable-http2="true"/>
无需在此处直接指定域名,但需确认 socket-binding 引用的端口(通常为 8080)已正确绑定到服务器的网络接口。
2. 配置虚拟主机:在 Undertow 子系统中,通过 host 元素定义虚拟主机,并使用 alias 属性设置域名别名。默认情况下,存在一个名为 default-host 的主机,其 alias 通常为 localhost。要设置自定义域名,请按以下方式修改:
<server name="default-server">
<host name="default-host" alias="your-domain.com,www.your-domain.com">
<location name="/" handler="welcome-content"/>
</host>
</server>
将 your-domain.com 和 www.your-domain.com 替换为实际需要绑定的域名。如果存在多个虚拟主机,可添加多个 host 元素,每个绑定不同域名并指向不同部署。
3. 配置系统属性(可选):某些场景下需要将服务器名称(Server Name)设置为域名,以便生成正确的重定向 URL 或 Set-Cookie 域。可通过在 standalone.xml 的 system-properties 中添加如下属性:
<property name="jboss.server.name" value="your-domain.com"/>
此属性会影响 HOST 请求头处理以及日志中的服务器标识。
4. SSL/TLS 与重定向:如果使用 HTTPS 并希望强制域名访问,需配置 https-listener,并在 http-listener 中设置 redirect-socket 指向 HTTPS 套接字。同时,可在虚拟主机中添加 rewrite 规则或使用 filter 实现域名重定向(例如将非 www 域名重定向到 www 域名)。具体可参考 Undertow 的 expression-filter 机制。
5. DNS 与网络配置:服务器端配置完成后,还需在 DNS 管理平台将目标域名(如 your-domain.com)的 A 记录(或 CNAME 记录)指向运行 JBoss 服务器的公网 IP 地址。同时确保服务器防火墙(如 iptables、firewalld)允许外部访问对应端口(如 80/8080、443/8443)。若使用反向代理(如 Nginx),则域名配置在代理层完成,JBoss 内部仅需监听 localhost 即可。
6. 验证与测试:重启 JBoss 服务器(或通过 CLI 执行 reload)后,使用浏览器访问 http://your-domain.com:8080 或 https://your-domain.com。如果页面正确返回,说明域名设置成功。也可通过命令行工具如 curl -H "Host: your-domain.com" http://localhost:8080 进行本地测试。
注意事项:
- 如果部署多个应用程序,可在虚拟主机内通过 context-root 区分,或使用 access-log 记录域名访问日志。
- 对于 JBoss AS 6 及更早版本,配置方式不同:需修改 server.xml(Tomcat 引擎)中的 Host 元素,设置 name 属性为域名。但鉴于这些版本已停止维护,强烈建议升级至 WildFly 最新稳定版。
- 在集群环境(域模式)中,域名配置应在 domain.xml 的 profile 和 server-group 层级统一部署,避免单点修改不一致。
以上步骤基于官方文档与生产实践,确保 JBoss 能正确响应域名请求。如遇具体错误,请检查 JBoss 日志文件(standalone/log/server.log)中的 Undertow 相关异常信息,以及防火墙和 SELinux 策略。

查看详情

查看详情