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用户。
$ 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 环境规划
本次安装环境规划如下:
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环境检查
$ 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
# 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 创建用户和目录
# 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环境
$ 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
$ /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
# 使用刚才创建的管理员账号登录
4. WildFly参数配置
WildFly参数配置是性能优化的关键步骤,直接影响系统性能。更多学习教程公众号风哥教程itpux_com
4.1 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 数据源配置
$ /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 连接池配置
$ vi /opt/wildfly/standalone/configuration/standalone.xml
# 在datasources部分添加或修改
# 或者使用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应用
$ /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应用
$ /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 独立模式集群配置
$ vi /opt/wildfly/standalone/configuration/standalone.xml
# 在
# 配置分布式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负载均衡
$ vi /opt/wildfly/standalone/configuration/standalone.xml
# 在
# 重启WildFly
$ /opt/wildfly/bin/jboss-cli.sh –connect
[standalone@192.168.1.51:9990 /] :reload
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 配置安全域
$ /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
$ 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’)”)
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监控
$ /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
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
$ 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 生产环境完整配置
# 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)
本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html
