TongWeb7在国产操作系统上的安装与配置实战指南
1. 环境准备为TongWeb7铺好国产化“地基”大家好我是老张在中间件和国产化环境里摸爬滚打了十来年。今天咱们不聊虚的直接上手把TongWeb7在国产操作系统比如咱们熟悉的麒麟上从零开始装起来、配起来。很多朋友一听到“国产化部署”就觉得头大其实只要把环境这个“地基”打牢了后面就是顺水推舟的事。这个“地基”主要就两块合适的操作系统和健康的JDK环境。首先说说操作系统。我实测过多个版本的麒麟包括桌面版和服务器版、统信UOS等TongWeb7的兼容性做得不错基本都能跑。但咱们最好优先选择官方适配列表里明确支持的版本比如银河麒麟高级服务器操作系统V10。这能避免很多稀奇古怪的底层库依赖问题。拿到一台崭新的国产服务器别急着装软件先做两件事第一更新系统补丁sudo yum update或sudo apt update sudo apt upgrade确保系统是最新稳定状态第二检查基础工具比如wget、tar、vim这些是不是都有了没有就顺手装上。这些小事能帮你避开不少安装过程中的“坑”。接下来是重中之重JDK环境。TongWeb7依赖于Java环境官方说JDK7以上就行但我强烈建议你直接上JDK8或者JDK11的LTS长期支持版本。为什么JDK7太老了很多新特性没有而且可能存在安全漏洞。JDK8是目前企业界最稳、生态最全的版本而JDK11则是下一个主流LTS对现代应用支持更好。在麒麟系统上你可以通过系统自带的包管理器安装OpenJDK比如sudo yum install java-1.8.0-openjdk-devel。但我更推荐的做法是去Oracle官网或国内镜像站下载对应架构通常是ARM或x86的JDK安装包手动解压到/usr/local/java这样的目录。这样做的好处是版本完全可控不会和系统其他组件产生冲突。安装好JDK后配置环境变量是关键一步很多安装失败都卡在这里。你需要编辑当前用户的家目录下的.bashrc或.bash_profile文件比如用vim ~/.bashrc在文件末尾加上这么几行export JAVA_HOME/usr/local/java/jdk1.8.0_381 # 这里替换成你的实际JDK安装路径 export PATH$JAVA_HOME/bin:$PATH export CLASSPATH.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar加完之后执行source ~/.bashrc让配置立刻生效。然后打开终端分别输入java -version和echo $JAVA_HOME验证。如果正确显示了Java版本和刚才设置的路径恭喜你JDK这块“地基”就算夯实了。这里有个细节TongWeb的安装程序在安装过程中会读取JAVA_HOME这个变量所以务必确保它在当前会话中是有效的。2. 系统调优让TongWeb7跑得更“丝滑”环境变量配好了是不是就能直接开装了别急想让TongWeb7在生产环境里跑得稳、性能好还得对操作系统做一些“微调”。你可以把这些调整想象成给赛车换更好的轮胎和调校悬挂能让引擎TongWeb的性能充分发挥出来。主要调优集中在三个地方文件描述符数量、用户进程限制和网络参数。第一调整最大文件打开数。这是Linux系统上一个常见的性能瓶颈。默认值通常是1024对于高并发的应用服务器来说太低了当连接数上去后可能会报“Too many open files”的错误导致服务不可用。修改方法是编辑/etc/security/limits.conf文件在文件末尾为运行TongWeb的用户比如tongweb或你计划使用的用户添加下面四行tongweb soft nofile 65535 tongweb hard nofile 65535 tongweb soft nproc 65535 tongweb hard nproc 65535这里soft代表软限制hard代表硬限制nofile是文件数nproc是用户最大进程数。我一般直接设到65535。修改保存后需要重新登录该用户会话才能生效你可以通过ulimit -n和ulimit -u命令来验证是否修改成功。第二调整内核参数。这需要一点权限通常要编辑/etc/sysctl.conf文件。我们主要关心几个和网络、端口相关的参数。在文件末尾添加或修改如下内容net.core.somaxconn 2048 net.ipv4.tcp_max_syn_backlog 2048 net.ipv4.tcp_tw_reuse 1 net.ipv4.ip_local_port_range 1024 65000somaxconn定义了Socket监听队列的最大长度调大它可以应对突发连接。tcp_tw_reuse允许TIME-WAIT状态的socket被重用对于短连接频繁的服务很有用。 修改完成后运行sudo sysctl -p让配置立即生效。这些调整能显著提升TongWeb在高并发场景下的网络处理能力。第三考虑创建专用用户。虽然用root安装最简单但从安全角度我强烈建议创建一个专门用来运行TongWeb的普通用户比如useradd -m tongweb。然后所有TongWeb相关的文件和进程都用这个用户来操作。这样即使应用层出现漏洞也能将攻击面限制在最小范围。安装前记得把这个用户加到必要的组并确保它对安装目录有读写执行权限。3. 安装实战一步步带你“通关”安装向导基础打牢系统调优完毕现在可以请出主角TongWeb7的安装包了。通常你会拿到一个类似Install_TW7.*.*.*_Enterprise_Linux.bin的文件。在开始前先给它加上执行权限chmod x Install_TW7*.bin。我个人的习惯是在字符界面Console下安装这样更清晰也适合远程操作。安装命令很简单./Install_TW7.*.*.*_Enterprise_Linux.bin -i console运行后安装程序会解压并启动。第一个界面是选择语言直接输入2选择中文简体然后回车。接下来会显示长长的许可协议按回车往下翻直到最后问你是否接受DO YOU ACCEPT THE TERMS OF THIS LICENSE AGREEMENT? (Y/N):输入y并回车。这一步没什么好犹豫的必须接受才能继续。接下来是关键一步选择Java虚拟机JVM。安装程序会检测你系统里的JAVA_HOME。如果你之前环境变量配得正确这里会直接显示你配置的JDK路径前面有个-1的箭头。我强烈建议你直接按回车使用这个已检测到的JDK。不要选第二个“安装程序自带JDK”因为自带的版本可能不匹配或不被你的国产系统完全兼容。也不要轻易选第三个“选择其他JDK”除非你确认当前检测的是错的。这一步选错后面启动很可能失败。然后是选择安装路径。默认路径通常是/root/TongWeb7.0。出于规范和安全考虑我从来不会装在root目录下。我会输入一个自定义路径比如/opt/TongWeb7.0或者/home/tongweb/TongWeb7。记住路径里最好包含主版本号“7.0”方便未来做多版本并存或升级。下一个界面是问你是否创建软链接对于生产服务器我一般选择4不创建链接保持环境干净。在确认安装摘要信息后安装程序就开始拷贝文件了。这个过程很快。安装完成后不会立即结束而是会进入一个非常关键的交互环节端口配置。这是很多新手会忽略的地方。安装程序会依次问你几个监听端口tong-http-listener这是TongWeb对外提供Web服务的端口默认是8088。如果你的服务器上还要跑Nginx做反向代理这个端口可以不用改。如果直接对外可以考虑改成80需要root权限或8080等常见端口。system-http-listener这是管理控制台的端口默认9060。这个端口非常重要是你后续通过浏览器管理TongWeb的入口务必记住它并且确保防火墙开放了这个端口。ejb-server-listener和jms-service分别是EJB和JMS服务的端口除非你的应用明确用到这些企业级特性否则保持默认5100和7200即可。shutdown-port这是用于安全关闭TongWeb的端口默认8005一般不动。我的建议是除非和现有服务冲突否则第一次安装时全部直接按回车使用默认端口减少出错概率。等安装成功并启动后再根据实际需求去配置文件里修改。全部端口确认后安装程序会提示完成并显示最终的安装路径。请注意此时安装还没有真正结束。你需要将产品授权文件license.dat拷贝到安装目录的根目录下比如/opt/TongWeb7.0/没有这个文件TongWeb是无法启动的。4. 核心配置与优化启动前的“最后打磨”安装完成放入License是不是马上启动就完事了别急还有几项核心配置优化做了之后能让你的TongWeb7跑得更快更稳。这就像新车出厂后还要做个精洗和检查一样。首先也是最重要的一步调整JVM内存参数。TongWeb7本身是一个Java应用它的性能很大程度上取决于给JVM分配了多少内存。配置文件在安装目录/bin/external.vmoptions。用vim打开它你会看到里面有一些以-Xms、-Xmx开头的参数。-XmsJVM堆内存的初始大小。我一般把它设置成和最大值一样避免运行中动态调整带来的性能波动。-XmxJVM堆内存的最大值。这是最关键的性能参数。设多少取决于你的物理内存和应用规模。对于一台内存16G的服务器如果只跑TongWeb一个主要服务我会设置为-Xms8192m -Xmx8192m即8G。切记不要设置得超过物理内存的70%要留给操作系统和其他进程足够的内存。-XX:MaxMetaspaceSize这是JDK8以后用来替代永久代PermGen的区域存放类的元数据。如果应用比较大类加载多可以适当调大。我通常设为-XX:MaxMetaspaceSize1024m。修改后的配置片段看起来是这样的-Xms8192m -Xmx8192m -XX:MaxMetaspaceSize1024m -XX:UseG1GC -XX:DisableExplicitGC我额外加了两个参数-XX:UseG1GC指定使用G1垃圾回收器在JDK8及以上G1对于大内存堆的停顿时间控制更好-XX:DisableExplicitGC禁止在代码中调用System.gc()防止不必要的全堆回收。其次是关于启动脚本。安装目录的bin文件夹下你会看到startserver.sh和startservernohup.sh。前者在前台运行日志输出到当前控制台适合调试后者用nohup方式在后台运行日志写入nohup.out文件适合生产环境。我们一般用后者./startservernohup.sh。启动后别急着访问先用ps -ef | grep java看看有没有名字里带“tongweb”的进程。再用netstat -tlnp | grep java看看你配置的端口尤其是9060和8088是否处于监听状态。如果都正常说明服务启动成功了。最后是登录控制台进行初步设置。打开浏览器输入http://你的服务器IP:9060/console。默认的用户名和密码是thanos/thanos123.com。第一次登录安全起见系统会强制你修改密码请务必设置一个强密码并妥善保管。进入控制台后我建议先做两件事一是去“配置”-“服务器配置”里检查一下之前设置的端口是否正确二是去“监视”-“阈值配置”里找到那个“快照”策略。默认的快照生成策略可能会频繁生成快照文件占用大量磁盘空间。对于生产环境我通常会把不必要的快照监控项取消勾选或者调整其生成周期和保留策略。5. 常见问题排查与安全加固即使按照指南一步步来在实际部署中也可能遇到一些小问题。这里我分享几个自己踩过的“坑”和解决办法希望能帮你快速排雷。问题一启动失败提示“Address already in use”这很明显是端口冲突了。可能是你设置的8088或9060端口已经被其他程序比如另一个Tomcat、Nginx等占用了。解决方法是先用netstat -tlnp | grep :端口号查一下是哪个进程占用的然后决定是停掉那个进程还是回到TongWeb的配置文件conf/tongweb.xml里修改端口。修改端口后一定要重启TongWeb才能生效。问题二能启动但浏览器访问9060控制台无法连接这种情况大概率是防火墙没开端口。在国产麒麟系统上你可能需要使用firewalld或iptables。对于firewalld可以运行sudo firewall-cmd --zonepublic --add-port9060/tcp --permanent sudo firewall-cmd --zonepublic --add-port8088/tcp --permanent sudo firewall-cmd --reload然后再次尝试访问。如果还不行检查一下服务器提供商的安全组规则比如云服务器是否放行了这些端口的入站流量。问题三应用部署后运行一段时间内存占用越来越高这通常是应用本身存在内存泄漏或者JVM参数设置不合理。首先通过控制台的“监视”-“性能数据”查看JVM堆内存的使用曲线如果是一直增长不回落很可能有泄漏。其次可以检查你设置的-Xmx是否真的够用。如果应用很大8G不够那就需要适当调大。但更重要的是分析应用本身的代码。还可以在external.vmoptions中增加生成HeapDump的参数如-XX:HeapDumpOnOutOfMemoryError -XX:HeapDumpPath/path/to/dump.hprof以便在内存溢出时自动保存快照供后续分析。安全加固建议修改默认密码这不用多说登录控制台第一件事就是改掉默认的thanos密码。控制台访问限制生产环境下不要将9060管理端口暴露在公网。可以通过Nginx反向代理设置IP白名单或者使用VPN接入内部网络后再访问。定期更新关注东方通官方发布的安全补丁和版本更新及时对TongWeb进行升级。日志审计TongWeb的日志在logs目录下定期检查server.log和access.log看看有没有异常访问或错误信息。6. 生产环境部署进阶考量如果你是要把TongWeb7部署到真正的生产环境那么除了安装和基础配置还需要考虑更多。这里我分享几个从实际项目中总结的经验点。第一关于目录规划。我强烈建议将安装目录、应用部署目录、日志目录、临时文件目录分离开。一个比较规范的目录结构可以是/opt/TongWeb7.0/TongWeb二进制程序本身。/data/apps/存放你开发的WAR包或EAR包。/data/logs/tongweb/指向TongWeb的logs目录方便日志收集和管理。/data/tmp/设置JVM的临时文件路径通过-Djava.io.tmpdir参数。 这样做的好处是清晰、安全、便于备份。你可以在TongWeb控制台的“配置”-“服务器配置”-“路径设置”中将“应用程序部署目录”指向/data/apps。第二配置数据源连接池。大部分Java Web应用都要连数据库。不要在应用的代码里直连数据库而应该在TongWeb控制台里配置JDBC数据源。进入“资源”-“JDBC”-“连接池”新建一个连接池。关键参数是“数据库驱动”、“URL”、“用户名”和“密码”。还有两个参数我每次都会调初始容量和最大容量。初始容量不要设为0避免第一个请求过来时才创建连接带来的延迟最大容量要根据数据库性能和压力来设一般20-50之间。配置好后在你的应用里就可以通过JNDI名字来获取数据源了这样连接管理更高效。第三线程池调优。TongWeb内部有自己的工作线程池来处理HTTP请求。默认配置对于轻量级应用可能够用但对于高并发场景就需要调整了。位置在“配置”-“服务器配置”-“线程池”。你可以根据服务器的CPU核心数和应用的IO等待情况来调整“最大线程数”。一个简单的估算公式是最大线程数 CPU核心数 * (1 平均等待时间/平均计算时间)。对于IO密集型的Web应用这个值可以设得高一些比如100-200。同时监控线程池的活跃线程数和队列长度如果队列经常满说明线程数可能不够。第四会话持久化与集群。单机部署总有性能瓶颈和单点故障风险。对于要求高可用的系统你需要考虑TongWeb的集群部署。TongWeb支持通过内存复制、数据库存储或共享文件系统等方式实现会话Session持久化。这意味着即使一台服务器宕机用户的登录状态也不会丢失。配置集群会复杂一些涉及到负载均衡器如Nginx的配置、TongWeb节点间的发现机制等但这是构建稳定生产系统的必经之路。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2415006.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!