1. 首页 > 软件安装教程 > 正文

JBoss/WildFly安装配置-JBoss/WildFly中间件安装配置_升级迁移详细过程

1. JBoss/WildFly概述与环境规划

WildFly(原名JBoss AS)是Red Hat赞助的开源应用服务器,提供企业级的JavaEE支持。WildFly具有轻量级、启动快、占用资源少等特点,支持最新的Jakarta EE标准。更多学习教程www.fgedu.net.cn

1.1 WildFly版本说明

WildFly目前主要版本为WildFly 33,本教程以WildFly 33为例进行详细讲解,同时兼容传统JBoss AS 7.x用户。

# 查看WildFly版本
$ cd /opt/wildfly
$ ./bin/standalone.sh –version
WildFly Full 33.0.0.Final

# 或者使用jboss-cli.sh
$ ./bin/jboss-cli.sh –version
jboss-cli 33.0.0.Final

# 启动WildFly(独立模式)
$ ./bin/standalone.sh

# 输出示例:
JBoss Bootstrap Environment
JBOSS_HOME: /opt/wildfly
JAVA_HOME: /usr/lib/jvm/java-17
JAVA_OPTS: -javaagent:/opt/wildfly/bin/jboss-modules.jar …

WildFly 33.0.0.Final starting…
WFLYSRV0049: WildFly Full 33.0.0.Final starting
WFLYSRV0025: WildFly 33.0.0.Final started in 5432ms

1.2 环境规划

本次安装环境规划如下:

主机名:fgedudb01.fgedu.net.cn
IP地址:192.168.1.51
WildFly管理端口:9990
HTTP端口:8080
HTTPS端口:8443
AJP端口:8009
安装目录:/opt/wildfly
数据目录:/data/wildfly
日志目录:/var/log/wildfly
备份目录:/backup/wildfly

Java环境:
JDK版本:OpenJDK 17
JAVA_HOME:/usr/lib/jvm/java-17
JVM堆大小:2GB

1.3 WildFly核心特性

主要特点:
1. Jakarta EE支持:支持最新的Jakarta EE 10标准
2. 微内核架构:模块化设计,按需加载
3. 快速启动:启动时间仅需几秒
4. 轻量级:最小安装仅需约100MB
5. 域名模式:支持集中管理多台服务器
6. 简化配置:通过CLI和Web控制台管理
7. 高可用性:支持会话复制和故障切换
8. 安全框架:内置安全域和OAuth支持

2. 硬件环境要求与检查

在安装WildFly之前,需要对服务器硬件环境进行全面检查。学习交流加群风哥微信: itpux-com

2.1 最低硬件要求

最低配置:
CPU:2核心
内存:2GB
磁盘:10GB

推荐配置(生产环境):
CPU:8核心以上
内存:8GB以上
磁盘:50GB以上

大型应用配置:
CPU:16核心以上
内存:16GB以上
磁盘:100GB以上SSD

2.2 Java环境检查

# 检查JDK版本
$ java -version
openjdk version “17.0.9” 9.0.4
OpenJDK Runtime Environment (Temurin-17.0.9+9) (build 17.0.9+9)
OpenJDK 64-Bit Server VM (build 17.0.9+9, mixed mode, sharing)

# 检查JAVA_HOME
$ echo $JAVA_HOME
/usr/lib/jvm/java-17

# 查看Java安装路径
$ which java
/usr/bin/java

# 查看所有已安装的Java版本
$ update-alternatives –list java
/usr/lib/jvm/java-17-openjdk.x86_64/bin/java
/usr/lib/jvm/java-11-openjdk.x86_64/bin/java

# 设置默认Java版本
# update-alternatives –config java
There are 2 programs which provide ‘java’.
Selection Command
———————————————–
*+ 1 /usr/lib/jvm/java-17-openjdk.x86_64/bin/java
2 /usr/lib/jvm/java-11-openjdk.x86_64/bin/java
Enter to keep the current selection[+], or type selection number: 1

2.3 系统环境检查

# 检查操作系统版本
# cat /etc/redhat-release
Red Hat Enterprise Linux release 8.8 (Ootpa)

# 检查内存信息
# free -h
total used free shared buff/cache available
Mem: 31Gi 1.0Gi 29Gi 256Mi 1.0Gi 30Gi
Swap: 7Gi 0B 7Gi

# 检查磁盘空间
# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/vg_system-lv_root 100G 5.0G 95G 5% /
/dev/mapper/vg_data-lv_data 500G 50G 450G 10% /data

# 检查防火墙状态
# systemctl status firewalld
firewalld.service – firewalld – dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled)
Active: active (running)

3. WildFly安装步骤

本节详细介绍WildFly 33的安装过程。学习交流加群风哥QQ113257174

3.1 安装OpenJDK

# 安装OpenJDK 17
# dnf install -y java-17-openjdk java-17-openjdk-devel

# 验证安装
$ java -version
openjdk version “17.0.9” 9.0.4
OpenJDK Runtime Environment (Temurin-17.0.9+9) (build 17.0.9+9)
OpenJDK 64-Bit Server VM (build 17.0.9+9, mixed mode, sharing)

# 设置JAVA_HOME
# vi /etc/profile.d/java.sh
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk
export PATH=$JAVA_HOME/bin:$PATH

# 使配置生效
# source /etc/profile.d/java.sh
$ echo $JAVA_HOME
/usr/lib/jvm/java-17-openjdk

3.2 创建用户和目录

# 创建wildfly用户
# groupadd -g 1002 wildfly
# useradd -u 1002 -g wildfly -d /opt/wildfly -s /bin/bash wildfly
# passwd wildfly

# 创建目录
# mkdir -p /opt/wildfly
# mkdir -p /data/wildfly/{data,content,tmp}
# mkdir -p /var/log/wildfly
# mkdir -p /backup/wildfly

# 设置目录权限
# chown -R wildfly:wildfly /opt/wildfly
# chown -R wildfly:wildfly /data/wildfly
# chown -R wildfly:wildfly /var/log/wildfly
# chown -R wildfly:wildfly /backup/wildfly

3.3 下载并安装WildFly

# 切换到安装目录
# cd /usr/local/src

# 下载WildFly 33
# wget https://github.com/wildfly/wildfly/releases/download/33.0.0.Final/wildfly-33.0.0.Final.tar.gz

# 解压安装
# tar -xzf wildfly-33.0.0.Final.tar.gz -C /opt/

# 创建软链接(便于版本管理)
# ln -s /opt/wildfly-33.0.0.Final /opt/wildfly

# 设置目录权限
# chown -R wildfly:wildfly /opt/wildfly-33.0.0.Final
# chown -R wildfly:wildfly /opt/wildfly

# 验证安装
$ ls -la /opt/wildfly/
总用量 0
drwxr-xr-x. 3 wildfly wildfly 4096 4月 4 10:00 appclient
drwxr-xr-x. 2 wildfly wildfly 4096 4月 4 10:00 bin
drwxr-xr-x. 2 wildfly wildfly 4096 4月 4 10:00 docs
drwxr-xr-x. 2 wildfly wildfly 4096 4月 4 10:00 domain
drwxr-xr-x. 2 wildfly wildfly 4096 4月 4 10:00 modules
drwxr-xr-x. 2 wildfly wildfly 4096 4月 4 10:00 standalone
drwxr-xr-x. 2 wildfly wildfly 4096 4月 4 10:00 welcome-content

3.4 配置WildFly环境

# 配置wildfly用户环境变量
$ vi ~/.bash_profile

# 添加以下内容
export WILDFLY_HOME=/opt/wildfly
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk
export PATH=$WILDFLY_HOME/bin:$JAVA_HOME/bin:$PATH

# 使配置生效
$ source ~/.bash_profile

# 配置WildFly启动参数
$ vi /opt/wildfly/bin/standalone.conf

# 添加以下JVM参数
JAVA_OPTS=”$JAVA_OPTS -Xms2g -Xmx4g”
JAVA_OPTS=”$JAVA_OPTS -XX:+UseG1GC”
JAVA_OPTS=”$JAVA_OPTS -XX:MaxGCPauseMillis=200″
JAVA_OPTS=”$JAVA_OPTS -Djava.security.egd=file:/dev/./urandom”

# 查看WildFly目录结构
$ ls -la /opt/wildfly/standalone/
总用量 0
drwxr-xr-x 2 wildfly wildfly 4096 4月 4 10:00 configuration
drwxr-xr-x 2 wildfly wildfly 4096 4月 4 10:00 deployments
drwxr-xr-x 2 wildfly wildfly 4096 4月 4 10:00 lib
drwxr-xr-x 2 wildfly wildfly 4096 4月 4 10:00 log

3.5 配置管理控制台

# 添加管理用户
$ /opt/wildfly/bin/add-user.sh

# 输出示例:
What type of user do you wish to add?
a) Management User (mgmt-users.properties)
b) Application User (application-users.properties)
(a): a

Enter the details of the new user to add.
Using realm ‘ManagementRealm’ as detected from existing properties files.
Username : admin
Password requirements are printed below. To modify these restrictions see the configuration file.
Password : **********
Are you sure you want to use the password entered yes/no? yes
What groups do you want this user to belong to? (Please enter a comma-separated list, or else leave blank for none)[ ]: Management
About to add user ‘admin’ for realm ‘ManagementRealm’
Is this correct yes/no? yes
Added user ‘admin’ to ‘/opt/wildfly/standalone/configuration/mgmt-users.properties’
Added user ‘admin’ to ‘/opt/wildfly/standalone/configuration/mgmt-groups.properties’

# 配置管理接口绑定
$ vi /opt/wildfly/standalone/configuration/standalone.xml

# 修改以下配置

# 配置防火墙
# firewall-cmd –permanent –add-port=8080/tcp
success
# firewall-cmd –permanent –add-port=9990/tcp
success
# firewall-cmd –permanent –add-port=8443/tcp
success
# firewall-cmd –reload
success

3.6 启动WildFly

# 启动WildFly(独立模式)
$ /opt/wildfly/bin/standalone.sh &

# 或者指定配置文件启动
$ /opt/wildfly/bin/standalone.sh -c standalone-full.xml &

# 查看启动日志
$ tail -f /opt/wildfly/standalone/log/server.log

# 输出示例:
WFLYSRV0025: WildFly 33.0.0.Final (WildFly Core #15) started in 5432ms – Started 123 of 145 services (services are lazy on passive)

# 检查端口
$ netstat -tlnp | grep wildfly
tcp6 0 0 :::8080 :::* LISTEN 12345/java
tcp6 0 0 :::9990 :::* LISTEN 12345/java
tcp6 0 0 :::8443 :::* LISTEN 12345/java

# 访问管理控制台
# 浏览器访问: http://192.168.1.51:9990
# 使用刚才创建的管理员账号登录

风哥提示:WildFly 33要求Java 11或更高版本。生产环境建议使用Java 17 LTS版本以获得更好的性能和安全性。

4. WildFly参数配置

WildFly参数配置是性能优化的关键步骤,直接影响系统性能。更多学习教程公众号风哥教程itpux_com

4.1 JVM参数配置

# 编辑JVM配置文件
$ vi /opt/wildfly/bin/standalone.conf

# 添加以下配置
JAVA_OPTS=”$JAVA_OPTS -Xms4g -Xmx4g”
JAVA_OPTS=”$JAVA_OPTS -XX:+UseG1GC”
JAVA_OPTS=”$JAVA_OPTS -XX:MaxGCPauseMillis=200″
JAVA_OPTS=”$JAVA_OPTS -XX:+HeapDumpOnOutOfMemoryError”
JAVA_OPTS=”$JAVA_OPTS -XX:HeapDumpPath=/var/log/wildfly/heapdump.hprof”
JAVA_OPTS=”$JAVA_OPTS -Djava.security.egd=file:/dev/./urandom”
JAVA_OPTS=”$JAVA_OPTS -Djboss.modules.system.pkgs=org.jboss.byteman”
JAVA_OPTS=”$JAVA_OPTS -Djava.awt.headless=true”

# Metaspace配置
JAVA_OPTS=”$JAVA_OPTS -XX:MetaspaceSize=256m”
JAVA_OPTS=”$JAVA_OPTS -XX:MaxMetaspaceSize=512m”

# GC日志配置
JAVA_OPTS=”$JAVA_OPTS -Xlog:gc*:file=/var/log/wildfly/gc.log:time,uptime:filecount=5,filesize=10M”

# 重启WildFly使配置生效
$ /opt/wildfly/bin/jboss-cli.sh –connect
[standalone@192.168.1.51:9990 /] shutdown –restart=true

4.2 数据源配置

# 使用CLI配置数据源
$ /opt/wildfly/bin/jboss-cli.sh –connect

# 添加PostgreSQL驱动
[standalone@192.168.1.51:9990 /] module add –name=org.postgresql –resources=/tmp/postgresql-42.7.1.jar –dependencies=javax.api,javax.transaction.api

[standalone@192.168.1.51:9990 /] /subsystem=datasources/jdbc-driver=postgresql:add(driver-name=postgresql,driver-module-name=org.postgresql,driver-class-name=org.postgresql.Driver)

# 添加数据源
[standalone@192.168.1.51:9990 /] data-source add –name=FgeDuDS –driver-name=postgresql –jndi-name=java:jboss/datasources/FgeDuDS –connection-url=jdbc:postgresql://192.168.1.51:5432/fgedudb –user-name=fgedu –password=fgedu123 –enabled=true –pool-name=FgeDuDS-Pool –min-pool-size=5 –max-pool-size=20

# 验证数据源
[standalone@192.168.1.51:9990 /] /subsystem=datasources/data-source=FgeDuDS:test-connection-in-pool

# 输出示例:
{
“outcome” => “success”,
“result” => [true]
}

4.3 连接池配置

# 编辑standalone.xml配置连接池
$ vi /opt/wildfly/standalone/configuration/standalone.xml

# 在datasources部分添加或修改 5
5
20 true false
false
FailingConnectionOnly

5
3
100

# 或者使用CLI配置
[standalone@192.168.1.51:9990 /] /subsystem=datasources/data-source=FgeDuDS:write-attribute(name=min-pool-size,value=10)
[standalone@192.168.1.51:9990 /] /subsystem=datasources/data-source=FgeDuDS:write-attribute(name=max-pool-size,value=50)

生产环境建议:根据应用并发量和数据库性能合理配置连接池大小。建议设置合理的空闲超时时间,及时释放连接。

5. 应用部署

WildFly支持多种应用部署方式,本节介绍常用的部署方法。from:www.itpux.com

5.1 部署WAR应用

# 方式一:通过CLI部署
$ /opt/wildfly/bin/jboss-cli.sh –connect

[standalone@192.168.1.51:9990 /] deploy /tmp/fgedu-web.war

# 输出示例:
{
“outcome” => “success”,
“result” => “fgedu-web.war”
}

# 方式二:通过管理控制台部署
# 浏览器访问: http://192.168.1.51:9990
# 选择”Deployments” -> “Add” -> 上传WAR文件

# 方式三:通过部署目录部署
$ cp /tmp/fgedu-web.war /opt/wildfly/standalone/deployments/

# 查看部署状态
$ ls -la /opt/wildfly/standalone/deployments/
fgedu-web.war
fgedu-web.war.deployed

# 查看部署日志
$ cat /opt/wildfly/standalone/deployments/fgedu-web.war.log
2026-04-04 10:00:00,123 INFO [org.jboss.as.server.deployment] (MSC service) WFLYSRV0027: Starting deployment of “fgedu-web.war”
2026-04-04 10:00:01,456 INFO [org.jboss.weld] (MSC service) WFLYELD0000: WELD 3.1.8.Final
2026-04-04 10:00:02,789 INFO [org.jboss.web] (MSC service) WFLYSRV0060: Http connector on port 8080

5.2 部署EAR应用

# 部署EAR应用
$ /opt/wildfly/bin/jboss-cli.sh –connect

[standalone@192.168.1.51:9990 /] deploy /tmp/fgedu-app.ear

# 启用部署扫描
[standalone@192.168.1.51:9990 /] /subsystem=deployment-scanner/scanner=default:write-attribute(name=scan-interval,value=5000)

# 配置部署覆盖
[standalone@192.168.1.51:9990 /] /subsystem=deployment-scanner/scanner=default:write-attribute(name=deployment-timeout,value=300)

# 查看已部署的应用
[standalone@192.168.1.51:9990 /] /deployment=*:read-children-names(child-type=deployment)
{
“outcome” => “success”,
“result” => [“fgedu-web.war”, “fgedu-app.ear”]
}

5.3 取消部署

# 取消部署应用
$ /opt/wildfly/bin/jboss-cli.sh –connect

[standalone@192.168.1.51:9990 /] undeploy fgedu-web.war –keep-content

# 完全删除
[standalone@192.168.1.51:9990 /] undeploy fgedu-web.war –remove-content

# 或者删除部署目录中的文件
$ rm /opt/wildfly/standalone/deployments/fgedu-web.war
$ rm -f /opt/wildfly/standalone/deployments/fgedu-web.war.deployed

6. 集群配置

WildFly支持集群部署,提供高可用性和负载均衡能力。更多学习教程www.fgedu.net.cn

6.1 独立模式集群配置

# 配置JGroups协议栈
$ vi /opt/wildfly/standalone/configuration/standalone.xml

# 在部分配置





192.168.1.51[7600],192.168.1.52[7600] 0

# 配置分布式Web会话
$ vi /opt/wildfly/standalone/configuration/standalone.xml

# 在部分配置





6.2 启动集群节点

# 在第一台服务器启动
$ /opt/wildfly/bin/standalone.sh -c standalone.xml \
-b 192.168.1.51 \
-bmanagement 192.168.1.51 \
-Djboss.node.name=fgedudb01 \
-Djboss.server.group.name=fgedu-group &

# 在第二台服务器启动
$ /opt/wildfly/bin/standalone.sh -c standalone.xml \
-b 192.168.1.52 \
-bmanagement 192.168.1.52 \
-Djboss.node.name=fgedudb02 \
-Djboss.server.group.name=fgedu-group &

# 查看集群状态
$ /opt/wildfly/bin/jboss-cli.sh –connect
[standalone@192.168.1.51:9990 /] /subsystem=jgroups/channel=ee:read-children-names(child-type=stack)
{
“outcome” => “success”,
“result” => [“ee”]
}

6.3 配置mod_cluster负载均衡

# 配置WildFly使用mod_cluster
$ vi /opt/wildfly/standalone/configuration/standalone.xml

# 在部分配置






# 重启WildFly
$ /opt/wildfly/bin/jboss-cli.sh –connect
[standalone@192.168.1.51:9990 /] :reload

风哥提示:WildFly集群使用JGroups进行节点间通信。生产环境建议配置可靠的网络环境,确保集群稳定性。

7. 安全配置

WildFly提供了完善的安全框架,本节介绍常用的安全配置方法。学习交流加群风哥微信: itpux-com

7.1 配置SSL/TLS

# 生成自签名证书
$ keytool -genkeypair -alias wildfly -keyalg RSA -keysize 2048 -keystore /opt/wildfly/standalone/configuration/keystore.jks -validity 365 -storepass changeit -keypass changeit -dname “CN=fgedudb01.fgedu.net.cn,OU=IT,O=FGedu,L=BJ,ST=BJ,C=CN”

# 配置HTTPS
$ /opt/wildfly/bin/jboss-cli.sh –connect

[standalone@192.168.1.51:9990 /] /subsystem=undertow/server=default-server/https-listener=https:write-attribute(name=security-realm,value=ApplicationRealm)

# 配置keystore
[standalone@192.168.1.51:9990 /] /core-service=management/security-realm=ApplicationRealm/server-identity=ssl:write-attribute(name=keystore-path,value=keystore.jks)
[standalone@192.168.1.51:9990 /] /core-service=management/security-realm=ApplicationRealm/server-identity=ssl:write-attribute(name=keystore-password,value=changeit)
[standalone@192.168.1.51:9990 /] /core-service=management/security-realm=ApplicationRealm/server-identity=ssl:write-attribute(name=key-password,value=changeit)

# 重启WildFly
[standalone@192.168.1.51:9990 /] :reload

7.2 配置安全域

# 配置JAAS安全域
$ /opt/wildfly/bin/jboss-cli.sh –connect

# 添加安全域
[standalone@192.168.1.51:9990 /] /subsystem=security/security-domain=FgeDuSecurity:add(cache-type=default)

# 配置JAAS
[standalone@192.168.1.51:9990 /] /subsystem=security/security-domain=FgeDuSecurity/authentication=classic:add(code=Database,flag=required,module-options=[dataSource=>java:jboss/datasources/FgeDuDS,principalsQuery=>”SELECT password FROM users WHERE username=?”,rolesQuery=>”SELECT role, ‘Roles’ FROM user_roles WHERE username=?”])

# 查看安全域
[standalone@192.168.1.51:9990 /] /subsystem=security/security-domain=*:read-children-names(child-type=security-domain)
{
“outcome” => “success”,
“result” => [“FgeDuSecurity”, “ApplicationRealm”, “Other”]
}

7.3 配置CORS

# 配置CORS
$ vi /opt/wildfly/standalone/configuration/standalone.xml

# 在undertow部分添加







# 或者使用CLI配置
[standalone@192.168.1.51:9990 /] /subsystem=undertow/server=default-server/host=default-host/filter-ref=cors:write-attribute(name=predicate,value=”method(GET,POST) && origin(‘http://fgedu.com’)”)

生产环境建议:生产环境建议使用正式CA签发的SSL证书。定期更新证书和密码策略。

8. 监控与日志

WildFly提供了完善的监控和日志功能,本节介绍常用的监控配置方法。更多学习教程公众号风哥教程itpux_com

8.1 日志配置

# 配置日志级别
$ /opt/wildfly/bin/jboss-cli.sh –connect

# 设置根日志级别
[standalone@192.168.1.51:9990 /] /subsystem=logging/root-logger=ROOT:write-attribute(name=level,value=INFO)

# 添加文件处理器
[standalone@192.168.1.51:9990 /] /subsystem=logging/file-handler=fgeDuFile:add(file={path=>fgedu.log,relative-to=>jboss.server.log.dir},level=INFO,append=true,auto-flush=true)

# 添加日志格式
[standalone@192.168.1.51:9990 /] /subsystem=logging/pattern-formatter=fgeDuPattern:add(pattern=”%d{yyyy-MM-dd HH:mm:ss} %-5p [%c{1}] %s%e%n”)

# 添加应用日志
[standalone@192.168.1.51:9990 /] /subsystem=logging/logger=fgedu:add(level=DEBUG,handlers=[fgeDuFile])

# 查看当前日志配置
[standalone@192.168.1.51:9990 /] /subsystem=logging:read-children-names(child-type=logger)
{
“outcome” => “success”,
“result” => [“”, “org.jboss.as.config”, “com.arjuna”, “fgedu”]
}

8.2 配置审计日志

# 配置安全审计
$ vi /opt/wildfly/standalone/configuration/standalone.xml

# 添加审计日志配置










# 重启WildFly
$ /opt/wildfly/bin/jboss-cli.sh –connect
[standalone@192.168.1.51:9990 /] :reload

8.3 启用JMX监控

# 配置JMX remoting
$ /opt/wildfly/bin/jboss-cli.sh –connect

# 启用JMX
[standalone@192.168.1.51:9990 /] /subsystem=jmx/remoting-connector:jmx-acceptor-protocol-subtype(value=jmxrmi)

# 配置Java Agent
$ vi /opt/wildfly/bin/standalone.conf

# 添加以下JVM参数
JAVA_OPTS=”$JAVA_OPTS -Dcom.sun.management.jmxremote”
JAVA_OPTS=”$JAVA_OPTS -Dcom.sun.management.jmxremote.port=9991″
JAVA_OPTS=”$JAVA_OPTS -Dcom.sun.management.jmxremote.authenticate=true”
JAVA_OPTS=”$JAVA_OPTS -Dcom.sun.management.jmxremote.ssl=false”
JAVA_OPTS=”$JAVA_OPTS -Dcom.sun.management.jmxremote.access.file=/opt/wildfly/bin/jmxremote.access”
JAVA_OPTS=”$JAVA_OPTS -Dcom.sun.management.jmxremote.password.file=/opt/wildfly/bin/jmxremote.password”

# 重启WildFly
[standalone@192.168.1.51:9990 /] :reload

风哥提示:生产环境建议配置集中式日志收集,如ELK Stack。定期分析日志有助于发现潜在问题。

9. 升级与迁移

WildFly升级和迁移是运维工作中的重要环节,需要仔细规划和执行。from:www.itpux.com

9.1 版本升级

# 检查当前版本
$ /opt/wildfly/bin/standalone.sh –version
WildFly Full 33.0.0.Final

# 完整备份当前WildFly
$ tar -czf /backup/wildfly/wildfly_backup_$(date +%Y%m%d).tar.gz /opt/wildfly

# 备份配置文件
$ cp -r /opt/wildfly/standalone/configuration /backup/wildfly/configuration_$(date +%Y%m%d)

# 下载新版本
# wget https://github.com/wildfly/wildfly/releases/download/34.0.0.Final/wildfly-34.0.0.Final.tar.gz

# 解压新版本
# tar -xzf wildfly-34.0.0.Final.tar.gz -C /opt/

# 迁移配置文件
# cp /opt/wildfly-33.0.0.Final/standalone/configuration/*.xml /opt/wildfly-34.0.0.Final/standalone/configuration/

# 迁移部署的应用
# cp -r /opt/wildfly-33.0.0.Final/standalone/deployments/* /opt/wildfly-34.0.0.Final/standalone/deployments/

# 更新软链接
# rm -f /opt/wildfly
# ln -s /opt/wildfly-34.0.0.Final /opt/wildfly

# 重启WildFly
$ /opt/wildfly/bin/shutdown.sh
$ /opt/wildfly/bin/standalone.sh &

# 验证版本
$ /opt/wildfly/bin/jboss-cli.sh –connect
[standalone@192.168.1.51:9990 /] /core-service=server-environment:read-attribute(name=product-version)
{
“outcome” => “success”,
“result” => “34.0.0.Final”
}

9.2 从JBoss AS 7迁移到WildFly

# JBoss AS 7配置通常可以无缝迁移到WildFly

# 备份JBoss AS 7
$ tar -czf /backup/jboss/jboss_as7_backup_$(date +%Y%m%d).tar.gz /opt/jboss-as

# 导出JBoss AS 7配置
$ /opt/jboss-as/bin/jboss-cli.sh –connect –command=”/core-service=server-environment:read-attribute(name=launch-type)”
{
“outcome” => “success”,
“result” => “DOMAIN”
}

# 迁移standalone配置
$ cp /opt/jboss-as/standalone/configuration/standalone.xml /opt/wildfly/standalone/configuration/

# 迁移部署
$ cp -r /opt/jboss-as/standalone/deployments/* /opt/wildfly/standalone/deployments/

# 迁移模块
$ cp -r /opt/jboss-as/modules/* /opt/wildfly/modules/

# 启动WildFly并检查
$ /opt/wildfly/bin/standalone.sh &
$ /opt/wildfly/bin/jboss-cli.sh –connect
[standalone@192.168.1.51:9990 /] :read-attribute(name=product-version)
{
“outcome” => “success”,
“result” => “WildFly Full 33.0.0.Final”
}

生产环境建议:升级前必须进行完整备份。建议先在测试环境验证兼容性,确保应用正常运行。

10. 生产环境实战案例

本节提供一个完整的生产环境配置案例,帮助读者更好地理解WildFly的实际应用。更多学习教程www.fgedu.net.cn

10.1 生产环境完整配置

# 生产环境WildFly完整配置脚本

# 1. JVM参数配置
$ vi /opt/wildfly/bin/standalone.conf

JAVA_OPTS=”$JAVA_OPTS -Xms8g -Xmx8g”
JAVA_OPTS=”$JAVA_OPTS -XX:+UseG1GC”
JAVA_OPTS=”$JAVA_OPTS -XX:MaxGCPauseMillis=200″
JAVA_OPTS=”$JAVA_OPTS -XX:+HeapDumpOnOutOfMemoryError”
JAVA_OPTS=”$JAVA_OPTS -XX:HeapDumpPath=/var/log/wildfly/heapdump.hprof”
JAVA_OPTS=”$JAVA_OPTS -XX:MetaspaceSize=512m”
JAVA_OPTS=”$JAVA_OPTS -XX:MaxMetaspaceSize=1g”
JAVA_OPTS=”$JAVA_OPTS -Xlog:gc*:file=/var/log/wildfly/gc.log:time,uptime:filecount=10,filesize=50M”
JAVA_OPTS=”$JAVA_OPTS -Djava.security.egd=file:/dev/./urandom”
JAVA_OPTS=”$JAVA_OPTS -Djboss-modules.system.pkgs=org.jboss.byteman”
JAVA_OPTS=”$JAVA_OPTS -Djava.awt.headless=true”

# 2. 使用CLI执行生产配置
$ /opt/wildfly/bin/jboss-cli.sh –connect –file=/tmp/wildfly-production.cli

# 3. 创建启动脚本
$ vi /opt/wildfly/bin/start-wildfly.sh

#!/bin/bash
WILDFLY_HOME=/opt/wildfly
JAVA_HOME=/usr/lib/jvm/java-17-openjdk
export JAVA_HOME

$WILDFLY_HOME/bin/standalone.sh \
-c standalone-full.xml \
-b 192.168.1.51 \
-bmanagement 192.168.1.51 \
-Djboss.node.name=fgedudb01 \
-Djboss.server.name=fgedudb01 \
–server-config=standalone-full.xml \
> /var/log/wildfly/console.log 2>&1 &

# 4. 创建systemd服务
$ vi /etc/systemd/system/wildfly.service

[Unit]
Description=WildFly Application Server
After=network.target

[Service]
Type=simple
User=wildfly
Group=wildfly
ExecStart=/opt/wildfly/bin/standalone.sh -c standalone-full.xml -b 192.168.1.51
ExecStop=/opt/wildfly/bin/jboss-cli.sh –connect –command=:shutdown
Restart=on-failure

[Install]
WantedBy=multi-user.target

# 启用服务
# systemctl enable wildfly
# systemctl start wildfly

10.2 健康检查配置

# 配置健康检查
$ /opt/wildfly/bin/jboss-cli.sh –connect

# 添加健康检查响应器
[standalone@192.168.1.51:9990 /] /subsystem=microprofile-health-smallrye:write-attribute(name=security-enabled,value=false)

# 查看健康状态
$ curl http://192.168.1.51:9990/health
{
“status”: “UP”,
“checks”: [
{
“name”: “deployment”,
“status”: “UP”
},
{
“name”: “server”,
“status”: “UP”
}
]
}

# 探测健康检查端点
$ curl http://192.168.1.51:9990/health/ready
$ curl http://192.168.1.51:9990/health/live

10.3 性能调优实战

# 线程池配置
$ /opt/wildfly/bin/jboss-cli.sh –connect

# 配置IO线程池
[standalone@192.168.1.51:9990 /] /subsystem=io:write-attribute(name=worker,value={task-threads=16})

# 配置数据库连接池优化
[standalone@192.168.1.51:9990 /] /subsystem=datasources/data-source=FgeDuDS:write-attribute(name=idle-timeout-minutes,value=10)
[standalone@192.168.1.51:9990 /] /subsystem=datasources/data-source=FgeDuDS:write-attribute(name=blocking-timeout-wait-millis,value=30000)

# 配置Web容器线程
[standalone@192.168.1.51:9990 /] /subsystem=undertow/server=default-server/http-listener=default:write-attribute(name=io-threads,value=8)
[standalone@192.168.1.51:9990 /] /subsystem=undertow/server=default-server/http-listener=default:write-attribute(name=task-threads,value=16)

# 查看线程池状态
[standalone@192.168.1.51:9990 /] /subsystem=undertow:read-resource(recursive=true)

风哥提示:WildFly作为企业级应用服务器,在性能和稳定性方面表现出色。建议根据实际业务负载进行性能调优,避免过度配置。

本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html

联系我们

在线咨询:点击这里给我发消息

微信号:itpux-com

工作日:9:30-18:30,节假日休息