尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
CentOS 7离线安装与配置Tomcat 9全指南
1. 离线环境下的准备工作在CentOS 7系统中离线安装Tomcat首先需要解决的是依赖环境和安装包的获取问题。与在线安装不同离线安装需要提前准备好所有必要的组件。1.1 获取Tomcat安装包Apache Tomcat的官方下载地址是https://tomcat.apache.org。对于生产环境我推荐使用最新的稳定版本目前是Tomcat 9.x或10.x系列。下载时需要注意选择core压缩包如apache-tomcat-9.0.xx.tar.gz同时下载对应的sha512校验文件用于验证包完整性如果服务器架构是ARM需要特别选择对应的版本实际操作中我习惯在能联网的机器上先用wget下载wget https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.xx/bin/apache-tomcat-9.0.xx.tar.gz wget https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.xx/bin/apache-tomcat-9.0.xx.tar.gz.sha5121.2 验证安装包完整性在将安装包传输到目标服务器前强烈建议先进行完整性校验。使用sha512sum工具sha512sum -c apache-tomcat-9.0.xx.tar.gz.sha512正确的输出应该是apache-tomcat-9.0.xx.tar.gz: OK1.3 准备Java运行环境Tomcat需要JDK环境在离线环境下需要提前准备好下载对应版本的JDK推荐JDK 8或11同样进行校验和验证准备环境变量配置脚本我通常会创建一个setup_java.sh脚本包含以下内容#!/bin/bash JAVA_HOME/usr/java/jdk1.8.0_xx PATH$JAVA_HOME/bin:$PATH export JAVA_HOME PATH2. 安装包传输与解压2.1 安全传输文件到目标服务器在没有网络的环境下可以使用以下方式传输文件使用U盘等物理介质通过内网文件共享服务使用scp从跳板机传输如果允许我个人的经验是对于生产环境最好先在测试机上验证安装包完整性再通过加密方式传输。例如使用scpscp -C apache-tomcat-9.0.xx.tar.gz usertarget-server:/tmp/2.2 解压安装Tomcat在目标服务器上建议将Tomcat安装在/opt目录下sudo mkdir -p /opt/tomcat sudo tar xzf /tmp/apache-tomcat-9.0.xx.tar.gz -C /opt/tomcat --strip-components1这里使用了--strip-components1参数可以去掉压缩包中的一级目录结构使安装更整洁。2.3 目录结构说明安装完成后/opt/tomcat目录下会有以下重要子目录bin/: 启动脚本和工具conf/: 配置文件logs/: 日志文件webapps/: 应用部署目录work/: JSP编译生成的servlet文件3. 配置与优化3.1 环境变量配置创建一个setenv.sh文件如果不存在来设置Tomcat运行参数sudo vi /opt/tomcat/bin/setenv.sh添加以下内容export CATALINA_HOME/opt/tomcat export CATALINA_BASE/opt/tomcat export JAVA_HOME/usr/java/jdk1.8.0_xx export JAVA_OPTS-server -Xms512m -Xmx1024m -XX:MetaspaceSize128m -XX:MaxMetaspaceSize512m注意内存参数Xms/Xmx应根据服务器实际配置调整。生产环境建议Xms和Xmx设置为相同值。3.2 修改server.xml配置编辑主配置文件进行基本优化sudo vi /opt/tomcat/conf/server.xml建议修改修改连接器配置添加URI编码Connector port8080 protocolHTTP/1.1 connectionTimeout20000 redirectPort8443 URIEncodingUTF-8/关闭不必要的主机Host namelocalhost appBasewebapps unpackWARstrue autoDeployfalse3.3 用户权限配置为安全考虑应该创建专用用户运行Tomcatsudo groupadd tomcat sudo useradd -s /bin/false -g tomcat -d /opt/tomcat tomcat sudo chown -R tomcat:tomcat /opt/tomcat sudo chmod -R ux /opt/tomcat/bin4. 服务管理与监控4.1 创建系统服务为了让Tomcat随系统启动可以创建systemd服务单元sudo vi /etc/systemd/system/tomcat.service添加以下内容[Unit] DescriptionApache Tomcat Web Application Container Aftersyslog.target network.target [Service] Typeforking Usertomcat Grouptomcat EnvironmentCATALINA_PID/opt/tomcat/temp/tomcat.pid EnvironmentCATALINA_HOME/opt/tomcat EnvironmentCATALINA_BASE/opt/tomcat ExecStart/opt/tomcat/bin/startup.sh ExecStop/opt/tomcat/bin/shutdown.sh Restarton-failure [Install] WantedBymulti-user.target然后启用服务sudo systemctl daemon-reload sudo systemctl enable tomcat sudo systemctl start tomcat4.2 日志管理Tomcat默认日志在/opt/tomcat/logs目录下。对于生产环境建议配置日志轮转sudo vi /etc/logrotate.d/tomcat添加/opt/tomcat/logs/catalina.out { daily rotate 30 missingok compress copytruncate dateext }配置更详细的访问日志 修改conf/server.xml中的AccessLogValve配置Valve classNameorg.apache.catalina.valves.AccessLogValve directorylogs prefixlocalhost_access_log suffix.txt pattern%h %l %u %t quot;%rquot; %s %b %D /5. 安全加固与常见问题5.1 基础安全配置删除默认应用rm -rf /opt/tomcat/webapps/docs /opt/tomcat/webapps/examples /opt/tomcat/webapps/ROOT修改关闭端口和命令 编辑conf/server.xmlServer port8005 shutdownSECRET_SHUTDOWN_STRING限制管理界面访问 编辑conf/tomcat-users.xmlrole rolenamemanager-gui/ role rolenameadmin-gui/ user usernameadmin passwordcomplex_password rolesmanager-gui,admin-gui/5.2 常见问题排查端口冲突问题netstat -tulnp | grep 8080内存不足问题 在setenv.sh中调整JAVA_OPTSexport JAVA_OPTS-Xms1g -Xmx2g ...权限问题sudo restorecon -Rv /opt/tomcat启动超时问题 编辑systemd服务文件增加TimeoutStartSec3005.3 性能调优建议连接器优化server.xmlConnector maxThreads200 minSpareThreads25 acceptCount100 enableLookupsfalse /JVM优化setenv.shexport JAVA_OPTS-server -XX:UseG1GC -XX:MaxGCPauseMillis200 ...禁用DNS查询Connector enableLookupsfalse ... /6. 应用部署与管理6.1 手动部署WAR包将WAR包复制到webapps目录cp application.war /opt/tomcat/webapps/Tomcat会自动解压WAR包。如果想指定上下文路径可以cp application.war /opt/tomcat/webapps/myapp.war6.2 配置上下文在conf/Catalina/localhost目录下创建XML文件Context docBase/path/to/application path/myapp reloadablefalse /Context6.3 热部署控制生产环境建议关闭自动部署Host namelocalhost appBasewebapps unpackWARstrue autoDeployfalse然后通过管理界面或脚本控制部署/opt/tomcat/bin/shutdown.sh # 更新文件 /opt/tomcat/bin/startup.sh7. 备份与恢复策略7.1 配置文件备份重要的配置文件包括conf/server.xmlconf/tomcat-users.xmlconf/context.xmlbin/setenv.sh建议定期备份tar czf /backup/tomcat-conf-$(date %Y%m%d).tgz /opt/tomcat/conf /opt/tomcat/bin/setenv.sh7.2 应用数据备份关键数据目录webapps/ (应用)conf/ (配置)logs/ (日志)备份脚本示例rsync -avz /opt/tomcat/webapps /backup/tomcat/ rsync -avz /opt/tomcat/conf /backup/tomcat/7.3 恢复流程停止Tomcat服务恢复配置文件恢复应用数据修复权限启动服务恢复命令示例systemctl stop tomcat tar xzf /backup/tomcat-conf-20230101.tgz -C / chown -R tomcat:tomcat /opt/tomcat systemctl start tomcat
RELATED

相关推荐

OpenVSP 3.16参数化建模:Python脚本与VSPAERO气动初算

OpenVSP 3.16参数化建模:Python脚本与VSPAERO气动初算

简介:OpenVSP 3.16(Windows 32 位)是面向航空设计初学者、高校师生与飞行器概念设计人员的开源三维几何建模工具包,侧重参数化外形构建与气动分析前的模型准备。压缩包共 81 个文件、约 9.42MB,含可执行程序、vsppart …

📅 2026/10/30 10:22:02
Windows下拦截ws2_32.dll send函数实现网络数据抓取与.ob文件落盘

Windows下拦截ws2_32.dll send函数实现网络数据抓取与.ob文件落盘

简介:这份资源聚焦Windows网络编程中的API拦截技术,面向具备一定C与Winsock基础、希望深入理解系统级Hook机制的开发者。核心内容围绕拦截ws2_32.dll中的send()函数展开,通过自定义钩子捕获套接字发送的数据并写入OB文件,同时保留…

📅 2026/10/30 10:22:02
macOS HiDPI原理与实操:从EDID协商到真Retina渲染

macOS HiDPI原理与实操:从EDID协商到真Retina渲染

简介:本资源是一套专为旧款Mac用户设计的HiDPI启用工具包,面向系统优化爱好者、开发者及对显示效果有较高要求的设计类用户,解决macOS原生不支持中低分辨率屏幕开启HiDPI的痛点。包内共14个文件,包含核心脚本hidpi.sh与hidpi.comm…

📅 2026/10/30 10:22:02
MORE NEWS

更多资讯

📰

RT-Thread Env SCons 自定义文件添加与 ST-Link 一键下载配置教程

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

基于Python的时间胶囊区块链:AES-GCM加密、链上存证与时间锁实践

简介:“区块链上的时间胶囊”项目源码与学习素材,适合具备 Python 编程基础、希望进一步接触区块链时间戳与智能合约开发的读者,可用于理解信息上链、加密保存及到期解锁等场景的基本实现思路,并体会分布式系统中透明性与隐私保护…

📰

LogManager启动后在忙什么:三类后台线程撑起日志全生命周期

摘要:上一篇讲了 LogManager 是什么、Broker 启动时如何加载恢复日志。这篇接着追问:日志恢复完、Broker 对外服务之后,LogManager 还在做什么?答案藏在 startup() 方法里——它会拉起三类后台线程:一个单线程调度器、…

📰

你的第一个开源 PR 指南:Null Motion 本地开发环境、good first issue 清单与 PR 规范

【免费下载链接】NullMotion Play a finished motion-graphics ad in sync with the rough drafts it grew from, and export the breakdown as MP4. 项目地址: https://gitcode.com/gh_mirrors/nu/NullMotion 点击查看 免费下载 Null Motion 是一个本地运行的动效…

📰

iDRAC9 240天试用License:解锁R740/R440远程KVM与虚拟介质

简介:iDRAC9 Enterprise 240天试用版许可证面向戴尔R740、R440等第14代服务器的系统管理员、IT运维人员,用于快速解锁服务器远程管理控制台的完整企业级功能。这份资源体积极小,压缩包仅2KB,内部包含1个XML格式的许可证文件&#…

📰

【吐血整理】STM32F103C8T6 例程全解析:从点亮 LED 到跑通 UCOS 的入门路线图

【吐血整理】STM32F103C8T6 例程全解析:从点亮 LED 到跑通 UCOS 的入门路线图 【免费下载链接】STM32F103C8T6开发参考例程代码 本仓库提供了针对STM32F103C8T6微控制器的开发参考例程代码。这些例程涵盖了多种常见的嵌入式开发功能,包括ADC、IO口、串口…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬