Wildfly 30项目部署至生产环境域名访问问题求助
一、先修正War包部署的持久化问题
你通过控制台部署的War包位于/opt/wildfly-30.0.1.Final/standalone/tmp/itcmedbr.war,这个目录是Wildfly的临时存储目录,服务器重启后War包会被清理,导致项目无法自动启动。正确操作:
- 将
itcmedbr.war复制到Wildfly的/opt/wildfly-30.0.1.Final/standalone/deployments目录下 - 重启Wildfly,系统会自动扫描并部署该目录下的War包,此部署方式为持久化部署,重启服务器不会丢失项目
二、域名访问失败的核心排查点
1. 确认域名解析是否生效
执行命令 ping itcmedbr.com,检查返回的IP地址是否与你的服务器公网IP一致。如果不一致,需到域名服务商后台修改A记录,将域名指向服务器公网IP,等待解析生效。
2. 端口与防火墙配置问题
浏览器直接访问域名默认走80端口,而你的Wildfly监听的是8080端口,这是核心矛盾之一,可通过两种方式解决:
方案1:端口转发
在服务器上配置iptables转发,将80端口流量转到8080:iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080注意:如果是云服务器,需在云平台安全组中开放80端口入站权限;同时检查服务器本地防火墙(如firewalld):
firewall-cmd --add-port=80/tcp --permanent firewall-cmd --reload方案2:修改Wildfly监听端口为80
修改/opt/wildfly-30.0.1.Final/standalone/configuration/standalone.xml,找到socket-binding-group下的http节点,将port改为80:<socket-binding name="http" port="${jboss.http.port:80}"/>注意:80端口属于特权端口,需以root用户启动Wildfly,或给Wildfly进程授权绑定特权端口的权限。
3. 上下文路径映射问题
你的项目访问路径是/itcmedbr,而直接访问域名时默认请求根路径/,需将根路径映射到项目上下文路径:
方式1:修改War包名称
将itcmedbr.war重命名为ROOT.war,放到deployments目录下,Wildfly会将其作为根路径项目,访问ip:8080或域名即可直接打开登录页。方式2:反向代理路径映射(生产环境推荐)
安装Nginx作为反向代理,配置示例:server { listen 80; server_name itcmedbr.com; location / { proxy_pass http://localhost:8080/itcmedbr; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }配置完成后重启Nginx,即可通过
itcmedbr.com直接访问项目。
4. 确认Wildfly绑定地址
确保Wildfly不是仅绑定localhost,否则外部无法通过IP或域名访问。修改standalone.xml中的socket-binding-group节点,将default-interface对应的inet-address改为0.0.0.0:
<interfaces> <interface name="public"> <inet-address value="${jboss.bind.address:0.0.0.0}"/> </interface> </interfaces>
或者启动Wildfly时添加参数:
./standalone.sh -b 0.0.0.0
内容的提问来源于stack exchange,提问作者Cezar Apulchro

