在Linux系统中部署Tomcat是Java Web应用开发中常见的操作,整个过程涉及环境准备、Tomcat安装、配置优化及服务管理等环节,以下从基础步骤到进阶配置,详细说明Linux下Tomcat的部署命令及相关操作。

环境准备
在部署Tomcat前,需确保系统已安装必要的运行环境,以CentOS 7为例,执行以下命令安装Java Development Kit(JDK):
yum update -y # 更新系统包 yum install java-1.8.0-openjdk-devel -y # 安装JDK 1.8 java -version # 验证Java安装是否成功,显示版本信息则安装成功
若使用Ubuntu系统,可通过apt install openjdk-8-jdk安装JDK,安装完成后,需配置JAVA_HOME环境变量,编辑/etc/profile文件:
vi /etc/profile
在文件末尾添加:
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.322.b06-1.el7_9.x86_64 export PATH=$PATH:$JAVA_HOME/bin
保存后执行source /etc/profile使配置生效,通过echo $JAVA_HOME检查变量是否设置成功。

Tomcat下载与安装
Tomcat官方提供了二进制压缩包,可通过wget命令下载(以Tomcat 9为例):
wget https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.65/bin/apache-tomcat-9.0.65.tar.gz
下载完成后,将压缩包解压至指定目录(如/usr/local):
tar -zxvf apache-tomcat-9.0.65.tar.gz -C /usr/local/ mv /usr/local/apache-tomcat-9.0.65 /usr/local/tomcat # 重命名目录方便管理
创建Tomcat专用用户并设置目录权限(避免使用root运行):
useradd -r -s /bin/false tomcat chown -R tomcat:tomcat /usr/local/tomcat chmod +x /usr/local/tomcat/bin/*.sh # 赋予脚本执行权限
Tomcat目录结构说明
Tomcat安装目录下的主要文件夹及其功能如下表所示:
| 目录名称 | 功能说明 |
|---|---|
/bin |
存放启动(startup.sh)、停止(shutdown.sh)等脚本文件 |
/conf |
配置文件目录,包含server.xml(核心配置)、web.xml(应用部署描述符)等 |
/logs |
日志文件目录,记录运行日志(如catalina.out) |
/webapps |
应用程序部署目录,WAR包或解压后的Web项目存放位置 |
/work |
JSP编译后的临时文件目录,Tomcat运行时自动生成 |
/temp |
临时文件目录,Tomcat运行时产生的临时文件 |
启动与停止Tomcat
前台启动(测试用)
直接执行startup.sh脚本,Tomcat将在前台运行,日志会直接打印到终端:
/usr/local/tomcat/bin/startup.sh
停止服务可通过shutdown.sh:
/usr/local/tomcat/bin/shutdown.sh
后台启动(生产环境推荐)
为避免终端关闭导致Tomcat停止,可通过nohup命令结合&让进程在后台运行:
nohup /usr/local/tomcat/bin/startup.sh > /dev/null 2>&1 &
停止服务时,可使用ps命令查找Tomcat进程ID(PID)并强制终止:
ps -ef | grep tomcat # 查找进程,找到PID后执行以下命令 kill -9 <PID> # 强制终止进程
更优雅的停止方式是发送SHUTDOWN信号:
/usr/local/tomcat/bin/shutdown.sh
配置Tomcat服务(Systemd管理)
将Tomcat注册为系统服务,可通过systemctl管理,实现开机自启和状态监控,创建服务文件:
vi /etc/systemd/system/tomcat.service ```根据实际JDK和Tomcat路径调整): ```ini [Unit] Description=Apache Tomcat 9 After=network.target [Service] Type=forking User=tomcat Group=tomcat Environment="JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk" Environment="CATALINA_PID=/usr/local/tomcat/temp/tomcat.pid" Environment="CATALINA_HOME=/usr/local/tomcat" Environment="CATALINA_BASE=/usr/local/tomcat" ExecStart=/usr/local/tomcat/bin/startup.sh ExecStop=/usr/local/tomcat/bin/shutdown.sh [Install] WantedBy=multi-user.target
保存后执行以下命令启用服务:
systemctl daemon-reload # 重新加载配置 systemctl start tomcat # 启动服务 systemctl enable tomcat # 设置开机自启 systemctl status tomcat # 查看服务状态
防火墙与端口配置
Tomcat默认使用8080端口,需确保防火墙允许该端口通过,以CentOS 7为例:
firewall-cmd --permanent --add-port=8080/tcp # 永久开放8080端口 firewall-cmd --reload # 重新加载防火墙配置
若需修改Tomcat端口,编辑conf/server.xml文件,找到以下行并修改port值:
<Connector port="8080" protocol="HTTP/1.1" />
修改后重启Tomcat服务使配置生效。
部署Web应用
部署WAR包
将WAR包直接复制到webapps目录,Tomcat会自动解压并部署:
cp your-app.war /usr/local/tomcat/webapps/
部署解压项目
将项目文件夹放入webapps目录,
mkdir -p /usr/local/tomcat/webapps/myapp cp -r /path/to/project/* /usr/local/tomcat/webapps/myapp/
部署完成后,访问http://服务器IP:8080/应用名即可查看应用。
性能优化配置
在conf/server.xml中可调整线程池、连接器等参数提升性能,优化HTTP连接器:
<Connector port="8080" protocol="HTTP/1.1"
maxThreads="200" minSpareThreads="20"
acceptCount="100" maxHttpHeaderSize="8192"
connectionTimeout="20000" redirectPort="8443"/>
参数说明:
maxThreads:最大线程数,默认200,可根据服务器配置调整minSpareThreads:最小空闲线程数acceptCount:等待队列长度,超过则拒绝请求
日志管理
Tomcat日志默认存放在logs目录,可通过conf/logging.properties调整日志级别和输出格式,设置catalina.out日志按日期分割:
- 安装
cronolog:yum install cronolog -y # CentOS系统
- 修改
bin/catalina.sh文件,找到touch "$CATALINA_OUT"行,替换为:CATALINA_OUT=$CATALINA_HOME/logs/catalina.out.%Y-%m-%d
- 在
catalina.sh中搜索org.apache.catalina.startup.Bootstrap "$@" start,在其后添加管道:2>&1 | $CATALINA_HOME/bin/cronolog "$CATALINA_OUT" >> /dev/null &
相关问答FAQs
Q1: 如何修改Tomcat的默认管理端口(8080)?
A: 编辑Tomcat的conf/server.xml文件,找到<Connector port="8080" ...>行,将port属性修改为所需端口(如8088),保存后重启Tomcat服务,同时需确保防火墙开放新端口,并避免与系统其他服务端口冲突。
Q2: 部署应用后访问404错误,如何排查?
A: 首先检查应用是否成功部署到webapps目录,确认应用名称与URL路径一致;其次查看logs/catalina.out日志文件,定位错误原因(如JSP语法错误、依赖缺失等);最后检查conf/server.xml中<Host>标签的appBase配置是否正确指向部署目录。
