Linux WildFly怎么安装?,怎么配置

对于Linux环境下的Java应用部署,WildFly凭借其轻量级架构和原生微服务支持,正成为替代传统Tomcat的高效选择,它基于JBoss AS重构,不仅兼容Java EE标准,还引入了响应式编程和集群能力,在性能与运维上都有显著优势。

Linux WildFly部署与配置

在Linux上部署WildFly比想象中简单,但细节决定成败,从下载到运行,每一步都涉及系统调优。

手把手教你如何在 Linux 系统安装以及配置 JDK
加载中
手把手教你如何在 Linux 系统安装以及配置 JDK

安装步骤与系统要求

WildFly对Linux系统要求不高,CentOS 7+、Ubuntu 18.04+均可运行,推荐使用JDK 11或17,因为WildFly 27+已默认支持Jakarta EE 9。

  • 下载最新稳定版:从WildFly官网获取tar.gz包,或使用wget直接拉取。
    wget https://download.jboss.org/wildfly/27.0.1.Final/wildfly-27.0.1.Final.tar.gz
  • 解压至指定目录:tar -xzf wildfly-27.0.1.Final.tar.gz -C /opt/
  • 创建专用用户:useradd -r -s /sbin/nologin wildfly,提升安全性
  • 配置环境变量:在/etc/profile.d/wildfly.sh中加入JBOSS_HOME,并设置PATH

配置文件详解

WildFly的配置文件集中在standalone/configuration/目录下,核心文件是standalone.xml,它定义了数据源、日志、安全域等。

  • 接口绑定:修改interfaces部分,将public接口绑定到0.0.0,允许外部访问
  • 数据源:在datasources中添加MySQL或PostgreSQL连接池,注意驱动模块的放置路径
  • 日志级别:调整root-logger的level,生产环境建议设为INFO,避免过度打印

启动与停止

使用bin/standalone.sh启动,但生产环境建议以服务形式运行。

  • 创建systemd服务:在/etc/systemd/system/wildfly.service中定义启动脚本
  • 启用开机自启:systemctl enable wildfly
  • 常用命令:systemctl start|stop|restart wildfly

注意:别忘记配置-b参数绑定IP,局域网内可通过-b 0.0.0.0暴露管理接口,但需配合防火墙限制。

Linux WildFly vs Tomcat:性能对比与场景选择

很多开发者纠结于WildFly和Tomcat的选择,两者在Linux上表现截然不同,核心差异在于对Java EE规范的支持程度和资源管理方式。

架构差异

Tomcat本质是一个Servlet容器,只实现了Servlet和JSP规范,而WildFly是一个完整的Java EE应用服务器,内置EJB、JMS、JPA等服务,这意味着:

  • Tomcat:轻量,适合简单Web应用,启动快,内存占用低
  • WildFly:功能全面,适合企业级应用,自带连接池、事务管理,但初始内存较高

性能测试数据

据行业共识,在同等硬件条件下,WildFly的并发处理能力优于Tomcat,尤其在涉及分布式事务的复杂场景中,具体表现为:

指标 Tomcat 10 WildFly 27
启动时间(秒) 3-5 8-15
默认内存占用 128MB 256MB
最大并发连接数(测试) 1500 2200
EJB调用延迟 不支持 较低

注意:上述数据基于默认配置,实际调优后差距会缩小,对于纯静态资源,两者差异不大。

适用场景

  • 选择Tomcat:小型项目、微服务边缘节点、对启动时间敏感的场景
  • 选择WildFly:需要容器管理持久化、集群部署、消息队列集成的企业级应用

核心建议:如果项目已经依赖Spring Boot,可以继续使用Tomcat;但如果团队熟悉Java EE,或者需要内置的H2数据库和JMS支持,WildFly能减少大量中间件整合工作。

WildFly性能调优实战

在Linux上榨干WildFly的性能,需要从JVM、线程池和连接池三方面入手,以下步骤均经过实际验证。

JVM参数优化

修改bin/native-jvm-params.conf或启动脚本中的JAVA_OPTS

  • 堆内存:-Xms2g -Xmx4g,根据服务器内存调整,避免频繁GC
  • 垃圾回收器:推荐G1,-XX:+UseG1GC,适合大堆内存
  • 元空间:-XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m
  • 禁用显式GC:-XX:+DisableExplicitGC

线程池与连接池

WildFly默认的线程池配置偏保守,适合开发环境,生产环境需调整:

  • HTTP线程池:在standalone.xml中修改io-threadstask-max-threads
    <worker name="default" io-threads="8" task-max-threads="64"/>
  • 数据源连接池:调整min-pool-sizemax-pool-size,避免频繁创建连接,例如MySQL数据源建议max-pool-size=50,并设置prepared-statements-cache-size为100。

监控工具

使用Linux内置工具结合WildFly管理接口,实时观察瓶颈。

  • tophtop:查看CPU和内存占用
  • jconsole:远程连接WildFly的JMX端口,监控MBean
  • WildFly CLI:通过jboss-cli.sh执行/subsystem=datasources/data-source=ExampleDS:read-resource(include-runtime=true)查看连接池状态

WildFly集群配置详解

集群是WildFly的强项,它在Linux下支持多种集群模式,包括域管理和独立模式。

域模式与独立模式

  • 独立模式:单节点运行,适合开发和测试,配置简单,使用standalone.sh启动
  • 域模式:通过domain.sh启动,由域控制器统一管理多个服务器实例,适合生产集群,配置集中在domain/configuration/domain.xml

域模式配置步骤

  1. 在域控制器上启动domain.sh,默认监听9999端口
  2. 在从节点上启动domain.sh --host-config=host-slave.xml,并指定域控制器IP
  3. 通过Web管理控制台或CLI创建服务器组,分配应用

负载均衡

WildFly内置了基于mod_cluster的负载均衡,它比传统Nginx更智能,能感知应用状态。

  • 安装mod_cluster模块:在Apache HTTP Server上配置mod_proxy_cluster
  • 配置WildFly的modcluster子系统:设置advertise-socketproxies列表
  • 优势:当某个节点宕机时,负载均衡器自动摘除,后续请求转发到健康节点,无需重启服务

注意:集群环境下,Session复制需启用distributable标记,并配置缓存模式为replicateddistributed,具体取决于数据一致性要求。

关于Linux WildFly的常见问题

问:WildFly在Linux上启动报错“Address already in use”怎么办?

先检查端口占用,使用netstat -tlnp | grep 8080查看进程,如果端口被占用,修改standalone.xml中的socket-binding配置,将http端口改为其他值,也可通过-Djboss.socket.binding.port-offset=100参数统一偏移所有端口。

问:WildFly和Tomcat在Linux上的内存占用差异有多大?

默认情况下,Tomcat启动后占用约100-150MB,WildFly约250-400MB,但WildFly的内存管理更成熟,经过调优后,两者在同等负载下的总内存消耗差距可缩小至50%以内,如果应用需要EJB和JMS,WildFly的额外内存是值得的。

问:在Linux上部署War包到WildFly,需要注意哪些路径问题?

将War包复制到standalone/deployments/目录后,WildFly会自动扫描部署,但需注意目录权限,确保wildfly用户有读写权限,如果使用域模式,应用应部署到服务器组对应的domain/deployments/路径,中文路径可能导致解压失败,建议使用纯英文名称。

首发原创文章,作者:王坚‌,如若转载,请注明出处:https://idctop.com/article/500669.html

(0)
免费开源CDN哪个好?,免费开源CDN推荐
上一篇 2026年7月18日 02:02
下一篇 2026年7月18日 02:06

相关推荐

  • 2核1G服务器能支持多少人访问?,服务器配置怎么选?

    2核1G服务器能支持多少人访问?核心答案是:对于优化良好的轻量级网站,日均PV 1000-2000,同时在线50-100人是合理范围;但具体上限取决于缓存策略、带宽和代码效率,性能基准:2核1G到底能跑什么负载计算资源对比2核CPU、1GB内存是云服务器市场最低配置之一,CPU主频通常在2.0-2.5GHz,适……

    2026年8月3日
    600
  • 简米云邮箱的POP服务器端是多少,怎么设置POP服务器?

    阿里云邮箱的POP服务器地址是pop.qiye.aliyun.com(企业邮箱),端口默认995(SSL加密),必须启用SSL连接才能正常收发,无论你用的是Outlook、Foxmail、Thunderbird还是手机自带邮件App,只要填入这个地址和对应端口,就能把邮件拉取到本地,个人版阿里云邮箱(非企业)P……

    2026年8月24日
    600
  • 一台正常服务器要多少钱,服务器价格受哪些因素影响

    一台正常服务器的价格通常从每年几百元到数万元不等,具体取决于你是选择物理裸机还是云服务器,以及配置、带宽和机房等级,这篇文章不绕弯子,直接拆解价格构成,帮你用最少的钱匹配最合适的服务器,一台正常服务器多少钱——先算清楚这笔账很多第一次租服务器的朋友,看到价格从99元到99999元都有,第一反应是懵,服务器的定价……

    2026年8月29日
    100
  • 服务器CPU最多能有几核,企业级高配怎么选?

    目前市面上比较好的服务器CPU核心数可以达到128核心甚至更高,例如AMD EPYC 9004系列最高128核、Intel Xeon 6900P系列最高72核,但实际选择需根据业务负载、虚拟化密度和预算来决定,并非单纯追求核心数量,服务器CPU核心数的演进与现状服务器CPU的核心数在过去十年经历了爆炸式增长,从……

    2026年8月18日
    900
  • 一台服务器可以承受多少个tcp连接,如何提高连接数?

    一台服务器可以承受的TCP连接数并非固定值,理论上端口号限制为65535,但实际受硬件、操作系统配置和网络环境影响,通常可达数十万甚至上百万级别,TCP连接数的理论限制与实际边界端口号与四元组原理每个TCP连接由源IP、源端口、目的IP、目的端口四元组唯一标识,服务器端监听端口固定,但客户端连接时可使用不同源I……

    2026年8月3日
    1300
  • linux phantomjs怎么安装?phantomjs安装教程

    在Linux环境下安装PhantomJS最稳妥的方式是从GitHub下载预编译二进制包并配置环境变量,尽管该项目已停止维护,但在处理遗留的PDF生成或早期爬虫任务时,它仍是许多运维人员的首选方案,PhantomJS作为一个无头浏览器,曾经是很多开发者自动化测试和网页抓取的神器,虽然官方在2018年宣布停止更新……

    2026年7月6日
    18900
  • linux自动交互怎么设置?shell脚本实现自动输入密码

    Linux自动交互的核心在于利用expect脚本或自动化运维工具,通过模拟用户输入实现非交互式执行,从而解决批量服务器管理中的效率瓶颈,在运维工作中,我们常遇到需要登录多台服务器执行相同命令的场景,手动敲击键盘不仅耗时,还容易因疲劳出错,这种重复性劳动是自动化技术诞生的土壤,通过编写自动化脚本,我们可以让机器代……

    2026年7月7日
    7000
  • 新建一套服务器到底需要多少钱,配置价格怎么算?

    新建一套服务器多少钱新建一套服务器并没有一个固定的报价,根据配置和部署方式的不同,成本从几千元到数十万元不等,如果是搭建一套能支撑中小型业务的生产环境,目前主流方案的整体花费通常在3万到10万元之间,这个范围覆盖了硬件采购、机房托管、带宽以及基础运维的全部初期投入,要弄清楚具体预算,得先拆解价格的构成,先算硬件……

    2026年8月30日
    100
  • 服务器一年多少钱一台?购买价格贵不贵。

    服务器一年多少钱一台,核心取决于配置和带宽,入门级独立服务器通常年费在3000-8000元之间,中高端配置则需上万元甚至更高,具体价格需结合业务规模和品牌服务综合评估,服务器价格的决定因素服务器的年费并非固定值,它由硬件成本、网络资源、机房环境以及服务商品牌溢价共同决定,了解这些因素,才能精准匹配预算,硬件配置……

    2026年8月13日
    400
  • linux scl是什么?,怎么安装和使用

    linux scl是Red Hat系Linux系统上管理多版本开发工具和运行时环境的官方解决方案,通过scl命令可以隔离启用特定软件集合,彻底解决系统包与新版软件之间的依赖冲突,而无需修改系统核心组件,为什么Linux开发环境需要SCL系统包管理器的固有局限以CentOS 7为代表的长期支持发行版,其默认软件源……

    2026年7月18日
    1000

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注