✨ 博客简介
Tomcat是Java Web开发最常用的轻量级服务器,日常开发分为本地部署(Windows开发调试)和远程部署(Linux云服务器线上上线)两种场景。很多新手会混淆两种部署的配置差异、端口放行、项目上线流程。
本文从零手把手教学,分别讲解Windows本地Tomcat部署、Linux云服务器远程Tomcat部署,包含环境配置、服务启动、项目部署、端口配置、常见报错解决,全程实操可直接复刻,适合入门学习和项目上线使用。
📌 环境说明
本地环境:Windows 10/11 + JDK1.8+ + Tomcat9.0(通用稳定版)
远程环境:阿里云/腾讯云Linux服务器(CentOS7/8)+ JDK1.8 + Tomcat9.0
部署项目:普通Java Web项目(war包部署,通用所有SSM/SpringBoot旧版Web项目)
一、前置必备:JDK环境安装配置
Tomcat运行依赖JDK环境,必须提前配置,本地和远程服务器都需要安装对应版本JDK(推荐JDK1.8,兼容性最强)。
1.1 Windows本地JDK配置
安装JDK1.8,安装路径建议纯英文无中文无空格(如:
D:\Java\jdk1.8)配置系统环境变量:新增
JAVA_HOME,值为JDK安装根目录在Path变量中添加:
%JAVA_HOME%\binCMD输入
java -version,输出版本号即配置成功
1.2 Linux远程服务器JDK配置
CentOS服务器可直接yum安装,简单高效:
yum install java-1.8.0-openjdk-devel -y # 验证版本 java -version
二、Windows本地Tomcat部署(开发调试专用)
本地部署核心用于项目本地调试、功能测试、开发预览,无需配置防火墙、公网IP,操作简单,仅需本地环境配置。
2.1 Tomcat下载与解压
官网下载Tomcat9.0压缩包(zip格式):Apache Tomcat官网
解压到纯英文路径,禁止中文、空格、特殊字符(推荐:
D:\Java\apache-tomcat-9.0)无需安装,解压即能用
2.2 配置Tomcat环境变量(可选,推荐配置)
新增系统变量:
CATALINA_HOME:Tomcat解压根目录Path追加:
%CATALINA_HOME%\bin
2.3 启动、关闭Tomcat服务
进入Tomcatbin目录:
启动服务:双击
startup.bat,黑窗口不闪退即为启动成功关闭服务:双击
shutdown.bat
访问测试:浏览器输入http://localhost:8080,出现Tomcat官方欢迎页面,说明本地部署成功。
2.4 本地部署Java Web项目(两种方式)
方式1:自动部署(最简单,推荐新手)
将项目打包好的xxx.war文件,直接复制到Tomcatwebapps目录,重启Tomcat后,服务器会自动解压war包、加载项目。
访问地址:http://localhost:8080/项目名
方式2:手动配置虚拟路径(自定义项目路径)
修改conf/server.xml,在<Host>标签内添加配置:
<Context path="/myweb" docBase="D:\Java\webproject" reloadable="true" crossContext="true"/>path:浏览器访问项目路径
docBase:本地项目真实存放路径
reloadable="true":修改代码自动热部署,无需重启服务
2.5 本地部署常见问题
启动窗口闪退:JDK环境未配置、端口8080被占用、路径含中文
端口占用解决:修改
conf/server.xml中8080端口为8081/8082
三、Linux远程服务器Tomcat部署(项目上线专用)
远程部署是将项目部署到云服务器公网环境,实现外网访问,供用户线上浏览使用,相比本地部署,多了服务器端口放行、防火墙配置、远程文件上传、开机自启等核心配置。
3.1 上传并解压Tomcat安装包
本地下载Tomcat9.0 tar.gz压缩包,通过Xshell、FinalShell、rz命令上传到服务器
推荐上传目录:
/usr/local/解压命令:
# 解压tomcat tar -zxvf apache-tomcat-9.0.tar.gz -C /usr/local/ # 重命名(方便后续操作) mv /usr/local/apache-tomcat-9.0 /usr/local/tomcat93.2 服务器核心配置(重中之重)
远程部署最大的坑:启动成功但外网无法访问,本质是防火墙和安全组未放行端口。
3.2.1 防火墙放行8080端口
# CentOS7 放行端口 firewall-cmd --permanent --add-port=8080/tcp # 重启防火墙生效 firewall-cmd --reload # 查看已放行端口 firewall-cmd --list-ports3.2.2 云服务器安全组配置
阿里云/腾讯云后台,进入服务器安全组配置,手动添加规则:
协议:TCP
端口:8080
授权对象:0.0.0.0/0(允许所有外网访问)
3.3 启动、停止、重启Tomcat
# 启动 /usr/local/tomcat9/bin/startup.sh # 停止 /usr/local/tomcat9/bin/shutdown.sh # 查看运行日志(排查报错) tail -f /usr/local/tomcat9/logs/catalina.out访问测试:浏览器输入http://服务器公网IP:8080,出现Tomcat首页即远程部署成功。
3.4 远程部署Java Web项目
方式1:war包直接部署(主流上线方式)
本地将项目打成war包
通过rz/ftp工具上传到服务器Tomcat
webapps目录重启Tomcat服务,自动解压部署项目
外网访问:
http://公网IP:8080/项目名
方式2:Tomcat后台可视化部署
适合频繁更新项目,无需重启服务。
配置管理员账号:修改
conf/tomcat-users.xml,末尾添加:
<role rolename="manager-gui"/> <user username="admin" password="123456" roles="manager-gui"/>重启Tomcat,访问
http://公网IP:8080/manager/html输入账号密码,上传war包一键部署
3.5 配置Tomcat开机自启(服务器必备)
防止服务器重启后Tomcat服务失效,配置开机自启:
# 创建服务文件 vim /etc/systemd/system/tomcat.service写入以下内容:
[Unit] Description=Tomcat9 Server After=network.target [Service] Type=forking Environment=JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk ExecStart=/usr/local/tomcat9/bin/startup.sh ExecStop=/usr/local/tomcat9/bin/shutdown.sh PrivateTmp=true [Install] WantedBy=multi-user.target生效配置:
systemctl daemon-reload systemctl enable tomcat systemctl start tomcat四、本地部署 VS 远程部署 核心区别对比
对比维度 | 本地Tomcat部署 | 远程Tomcat部署 |
|---|---|---|
使用场景 | 开发调试、代码测试、本地预览 | 项目上线、外网访问、正式运营 |
访问方式 | localhost/127.0.0.1,仅本机访问 | 公网IP/域名,全网可访问 |
端口配置 | 无需放行防火墙,仅本地端口不冲突即可 | 必须放行服务器防火墙+云平台安全组端口 |
项目更新 | 热部署、重启本地服务即可 | 上传war包、后台部署、重启远程服务 |
额外配置 | 无复杂配置 | 开机自启、权限配置、日志监控、安全配置 |