一、环境准备:JDK安装与验证
Tomcat作为Java应用服务器,其运行依赖Java开发工具包(JDK)。Tomcat 7.0.x版本最高支持JDK 8,建议选择OpenJDK 8作为运行环境。
-
环境检查
执行命令java -version确认系统是否已安装JDK。若输出类似command not found,则需进行安装。 -
OpenJDK安装
通过包管理器安装OpenJDK 8及开发工具包:sudo yum install java-1.8.0-openjdk java-1.8.0-openjdk-devel -y
安装完成后再次验证版本:
java -version# 预期输出:openjdk version "1.8.0_XXX"
-
环境变量配置(可选)
若需全局使用JDK,可在/etc/profile中添加:export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdkexport PATH=$JAVA_HOME/bin:$PATH
执行
source /etc/profile使配置生效。
二、Tomcat安装与目录结构解析
-
获取安装包
从官方托管仓库或可信渠道下载Tomcat 7.0.27二进制包(建议使用.tar.gz格式)。 -
解压与目录说明
tar -zxvf apache-tomcat-7.0.27.tar.gzcd apache-tomcat-7.0.27
关键目录说明:
bin/:启动/停止脚本及工具conf/:核心配置文件(如server.xml)webapps/:Web应用部署目录logs/:运行时日志文件work/:JSP编译缓存目录
三、服务启动与访问验证
-
启动服务
进入bin/目录执行启动脚本:cd bin./startup.sh# 或使用绝对路径/path/to/apache-tomcat-7.0.27/bin/startup.sh
成功启动后控制台输出
Tomcat started,日志文件位于../logs/catalina.out。 -
访问验证
默认监听8080端口,通过以下方式验证:- 本地访问:
http://localhost:8080 - 远程访问:
http://<服务器IP>:8080
正常应显示Tomcat默认欢迎页(含猫图标)。
- 本地访问:
四、Web应用部署实战
-
WAR包部署流程
将编译好的WAR文件复制至webapps/目录:cp /path/to/myapp.war /path/to/apache-tomcat-7.0.27/webapps/
Tomcat会自动解压WAR包并加载应用,可通过日志确认部署状态:
tail -f ../logs/catalina.out
-
应用访问测试
部署完成后访问:http://<服务器IP>:8080/myapp
若出现404错误,需检查:
- WAR包内
WEB-INF/web.xml配置 - 应用上下文路径(Context Path)设置
-
热部署限制说明
Tomcat 7默认不支持动态重新加载类文件,修改代码后需:- 删除
webapps/下对应应用目录及WAR包 - 重新复制WAR文件
- 重启服务(见下文关闭章节)
- 删除
五、服务管理最佳实践
-
优雅关闭服务
使用shutdown.sh脚本通知JVM停止:./shutdown.sh
通过进程检查确认关闭状态:
ps -ef | grep tomcat
-
启动参数优化
在bin/catalina.sh开头添加JVM参数(解决启动慢问题):export JAVA_OPTS="-Xms512m -Xmx1024m -Djava.security.egd=file:/dev/./urandom"
参数说明:
-Xms/-Xmx:初始/最大堆内存-Djava.security.egd:加速随机数生成
-
作为系统服务管理
创建/etc/systemd/system/tomcat.service文件:[Unit]Description=Apache Tomcat 7After=syslog.target network.target[Service]Type=forkingEnvironment=JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdkEnvironment=CATALINA_PID=/path/to/apache-tomcat-7.0.27/temp/tomcat.pidEnvironment=CATALINA_HOME=/path/to/apache-tomcat-7.0.27ExecStart=/path/to/apache-tomcat-7.0.27/bin/startup.shExecStop=/path/to/apache-tomcat-7.0.27/bin/shutdown.shUser=tomcatGroup=tomcatUMask=0007RestartSec=10Restart=always[Install]WantedBy=multi-user.target
启用服务:
sudo systemctl daemon-reloadsudo systemctl enable tomcatsudo systemctl start tomcat
六、常见问题深度解析
-
JAVA_HOME未定义错误
- 现象:启动时报
Neither the JAVA_HOME nor the JRE_HOME environment variable is defined - 解决方案:
- 确认JDK安装路径:
readlink -f $(which java) - 在
catalina.sh开头显式定义:export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
- 确认JDK安装路径:
- 现象:启动时报
-
端口冲突处理
- 现象:
Address already in use - 排查步骤:
- 确认端口占用:
netstat -tulnp | grep 8080 - 修改
conf/server.xml中的<Connector port="8080"> - 更新防火墙规则:
sudo firewall-cmd --add-port=新端口/tcp --permanentsudo firewall-cmd --reload
- 确认端口占用:
- 现象:
-
性能调优建议
- 线程池配置:修改
server.xml中的Executor配置:<Executor name="tomcatThreadPool"namePrefix="catalina-exec-"maxThreads="200"minSpareThreads="10"/>
- 连接器优化:
<Connector executor="tomcatThreadPool"port="8080"protocol="HTTP/1.1"connectionTimeout="20000"redirectPort="8443"acceptCount="100"maxKeepAliveRequests="100"/>
- 线程池配置:修改
七、生产环境增强建议
-
安全加固
- 删除
webapps/下默认应用(ROOT、docs等) - 修改管理界面默认端口(默认8005)
- 启用SSL加密(需配置
conf/server.xml中的HTTPS Connector)
- 删除
-
日志管理
- 配置日志轮转:创建
/etc/logrotate.d/tomcat:/path/to/apache-tomcat-7.0.27/logs/catalina.out {copytruncatedailyrotate 7compressmissingoksize 10M}
- 配置日志轮转:创建
-
监控集成
- 通过JMX暴露监控指标(需在
JAVA_OPTS中添加):-Dcom.sun.management.jmxremote-Dcom.sun.management.jmxremote.port=9004-Dcom.sun.management.jmxremote.ssl=false-Dcom.sun.management.jmxremote.authenticate=false
- 通过JMX暴露监控指标(需在
通过以上步骤,您可在CentOS 7系统上构建稳定的Tomcat 7.0.27运行环境。对于新项目开发,建议评估升级至Tomcat 9或更高版本以获得更好的性能和安全支持。如需处理高并发场景,可考虑结合Nginx反向代理及负载均衡方案。