腾讯云Linux云服务器部署Javaweb项目全流程指南
腾讯云Linux云服务器部署Javaweb项目全流程指南
在云计算快速普及的当下,将Javaweb项目部署到腾讯云Linux服务器,凭借弹性扩容、稳定可靠、成本可控等优势,已成为企业与个人开发者的主流选择。Javaweb项目部署核心依赖JDK、Tomcat(或内置容器)、MySQL三大组件,腾讯云提供的Linux服务器(CentOS、Ubuntu等)适配性极强,可满足不同规模项目的部署需求。本文将从服务器准备、环境搭建、项目打包上传、配置优化、公网访问到故障排查,全方位讲解部署流程,兼顾新手入门与进阶优化需求。
一、腾讯云服务器选购与初始化配置
1.1 服务器配置选型
腾讯云CVM(云服务器)配置需根据项目规模、并发量及预算合理选择,避免资源浪费或性能不足。以下为不同场景配置推荐:
小型/测试项目:1核CPU、2GB内存、1-2Mbps带宽、40GB系统盘,适合个人博客、小型管理系统,可选择腾讯云轻量应用服务器,性价比更高。
中型企业项目:2-4核CPU、4-8GB内存、3-5Mbps带宽、50-100GB数据盘,适配中小型电商、企业官网等,优先选择标准型CVM实例。
大型高并发项目:8核及以上CPU、16GB及以上内存、10Mbps以上带宽、200GB+数据盘,可搭配负载均衡、CDN等服务,支撑高并发访问。
操作系统推荐选择CentOS 7.9(稳定兼容,教程资源丰富)或Ubuntu 22.04(软件包更新快),新手优先CentOS,减少适配问题。
1.2 服务器购买与登录准备
进入腾讯云官网,注册并登录账号,进入云服务器CVM控制台,点击“新建实例”,选择配置后完成购买。购买成功后,服务器会生成公网IP(用于远程连接和项目访问)和内网IP(用于云产品内网互通)。
需要先登录腾讯云控制台,点击:腾讯云控制台,还没有账号,点击:注册后再关联,已有账号点击:登录后再关联
1.3 安全组与防火墙配置(关键)
腾讯云安全组是服务器的虚拟防火墙,默认仅开放22端口(SSH远程连接),需手动开放Javaweb项目所需端口,否则无法公网访问。
步骤1:配置腾讯云安全组
进入腾讯云CVM控制台,找到目标服务器,点击“安全组”→“配置规则”。
添加入站规则,协议选择TCP,开放以下端口:
22端口:SSH远程连接(默认开放,可限制IP提高安全)。
80端口:HTTP公网访问(生产环境优先使用80端口)。
443端口:HTTPS加密访问(可选,需配置SSL证书)。
8080端口:Tomcat默认端口(测试环境使用,生产建议改为80端口)。
3306端口:MySQL数据库端口(仅测试开放,生产环境建议关闭,通过内网访问)。
出站规则默认全部允许,无需修改,保存规则生效。
步骤2:关闭系统防火墙(避免端口拦截)
CentOS系统默认开启firewalld防火墙,为避免与安全组冲突,建议关闭或开放对应端口:
# 关闭firewalld防火墙(推荐新手操作) systemctl stop firewalld systemctl disable firewalld # 或开放指定端口(不关闭防火墙) firewall-cmd --zone=public --add-port=8080/tcp --permanent firewall-cmd --zone=public --add-port=3306/tcp --permanent firewall-cmd --reload # 查看开放端口 firewall-cmd --list-ports
1.4 远程连接服务器
推荐使用FinalShell、Xshell等工具远程连接,Windows也可使用自带CMD或PowerShell,连接命令:
ssh 用户名@服务器公网IP # 示例:ssh root@123.45.67.89(默认用户名root,输入服务器密码登录)
首次连接会提示“Are you sure you want to continue connecting?”,输入yes回车,输入密码后成功登录服务器。
二、Linux服务器环境搭建(JDK+Tomcat+MySQL)
Javaweb项目运行必须依赖JDK(Java运行环境)、Tomcat(Web容器,运行WAR包)、MySQL(数据库,存储项目数据),以下以CentOS 7.9为例,详细讲解安装配置步骤。
2.1 安装JDK 1.8(主流稳定版本)
JDK是Java项目运行的基础,推荐安装OpenJDK 1.8(免费开源,适配性强),避免使用Oracle JDK的版权问题。
步骤1:卸载系统自带旧版本JDK(避免冲突)
# 查看系统已安装JDK rpm -qa | grep java # 卸载所有旧版本(复制查询结果替换包名) yum -y remove java-1.7.0-openjdk*
步骤2:安装OpenJDK 1.8
# 安装JDK 1.8及开发工具 yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel # 验证安装(输出版本号即成功) java -version javac -version
步骤3:配置环境变量(关键,否则Tomcat无法识别JDK)
# 编辑系统环境变量文件 vim /etc/profile # 按i进入编辑模式,在文件末尾添加以下内容 export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.382.b05-1.el7_9.x86_64 export PATH=$JAVA_HOME/bin:$PATH export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar # 按ESC,输入:wq保存退出 # 重载环境变量生效 source /etc/profile # 验证环境变量 echo $JAVA_HOME
注意:JAVA_HOME路径需根据实际安装路径修改,可通过ls /usr/lib/jvm/查询真实路径。
2.2 安装配置Tomcat 8.5(适配JDK1.8)
Tomcat是Javaweb项目的Web容器,用于运行WAR包项目,推荐安装8.5版本(稳定兼容JDK1.8)。
步骤1:下载Tomcat安装包(清华镜像源,速度快)

# 进入/usr/local目录(软件默认安装目录) cd /usr/local # 下载Tomcat 8.5.100 wget https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.100/bin/apache-tomcat-8.5.100.tar.gz # 解压安装包 tar -zxvf apache-tomcat-8.5.100.tar.gz # 重命名为tomcat(简化路径) mv apache-tomcat-8.5.100 tomcat
步骤2:配置Tomcat环境变量
# 编辑环境变量文件 vim /etc/profile # 添加Tomcat环境变量 export CATALINA_HOME=/usr/local/tomcat export PATH=$CATALINA_HOME/bin:$PATH # 重载生效 source /etc/profile
步骤3:修改Tomcat核心配置(解决中文乱码、端口修改)
1. 修改端口(可选,生产环境改为80端口):
# 编辑server.xml配置文件 vim /usr/local/tomcat/conf/server.xml # 找到以下端口配置,将8080改为80(避免端口冲突)# 按ESC,:wq保存退出
2. 解决中文乱码:
# 编辑catalina.sh文件 vim /usr/local/tomcat/bin/catalina.sh # 在文件开头添加以下内容(解决GET/POST中文乱码) JAVA_OPTS="-Dfile.encoding=UTF-8 -Dsun.jnu.encoding=UTF-8" # 保存退出
步骤4:启动Tomcat并设置开机自启
# 启动Tomcat /usr/local/tomcat/bin/startup.sh # 查看启动日志(无报错即成功) tail -f /usr/local/tomcat/logs/catalina.out # 停止Tomcat命令:/usr/local/tomcat/bin/shutdown.sh # 设置开机自启(创建系统服务) vim /etc/systemd/system/tomcat.service # 写入以下内容 [Unit] Description=Tomcat Web Container After=network.target [Service] Type=forking ExecStart=/usr/local/tomcat/bin/startup.sh ExecStop=/usr/local/tomcat/bin/shutdown.sh Restart=always [Install] WantedBy=multi-user.target # 保存退出,设置开机自启 systemctl daemon-reload systemctl enable tomcat systemctl start tomcat
验证Tomcat访问:浏览器输入http://服务器公网IP:80(或8080),看到Tomcat默认页面即配置成功。
2.3 安装配置MySQL 5.7(适配Javaweb项目)
MySQL是Javaweb项目常用数据库,推荐安装5.7版本(稳定,兼容性强),腾讯云也可选择云数据库MySQL(无需自行维护)。
步骤1:卸载系统自带MariaDB(避免冲突)
# 查看MariaDB rpm -qa | grep mariadb # 卸载 yum -y remove mariadb*
步骤2:安装MySQL 5.7
# 下载MySQL官方yum源 wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm # 安装yum源 rpm -ivh mysql57-community-release-el7-11.noarch.rpm # 导入密钥(解决依赖问题) rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022 # 安装MySQL服务器 yum install -y mysql-community-server # 启动MySQL systemctl start mysqld # 设置开机自启 systemctl enable mysqld
步骤3:初始化MySQL(修改默认密码、授权远程访问)
# 查看初始临时密码
grep "temporary password" /var/log/mysqld.log
# 登录MySQL(输入临时密码)
mysql -u root -p
# 修改root密码(复杂度要求:大小写+数字+特殊符号)
SET PASSWORD = PASSWORD('Admin@123');
# 授权root远程访问(允许所有IP连接,生产环境限制指定IP)
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'Admin@123';
# 刷新权限
FLUSH PRIVILEGES;
# 退出MySQL
exit;验证MySQL连接:本地使用Navicat工具,输入服务器公网IP、用户名root、密码Admin@123,成功连接即配置成功。
三、Javaweb项目打包与上传服务器
Javaweb项目分为传统WAR包项目(依赖Tomcat)和Spring Boot JAR包项目(内置Tomcat,无需独立安装),两种打包上传方式不同,以下分别讲解。
3.1 传统WAR包项目打包(IDEA工具)
步骤1:IDEA配置打包工件
打开IDEA项目,点击
File→Project Structure→Artifacts→+→Web Application→Archive。选择项目名称,输出目录选择
target,点击Apply→OK。
步骤2:执行打包命令

点击
Build→Build Artifacts→项目名→Build。打包成功后,在项目
target目录下生成项目名.war文件。
3.2 Spring Boot JAR包项目打包(Maven命令)
Spring Boot项目内置Tomcat容器,打包后为可执行JAR包,无需独立安装Tomcat,部署更简单。
步骤1:Maven打包
确保项目
pom.xml中配置Spring Boot打包插件:
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build>
IDEA底部打开Terminal,执行打包命令:
mvn clean package -DskipTests
打包成功后,
target目录下生成项目名.jar文件。
3.3 项目上传服务器(两种方式)
方式1:SCP命令上传(Linux本地/Windows CMD)
# WAR包上传到Tomcat的webapps目录 scp D:/project/demo.war root@服务器公网IP:/usr/local/tomcat/webapps/ # JAR包上传到服务器指定目录(如/home/project) scp D:/project/demo.jar root@服务器公网IP:/home/project/
方式2:FinalShell可视化上传(新手推荐)
FinalShell连接服务器后,右侧打开文件管理器。
本地选择WAR/JAR包,拖拽到服务器指定目录(WAR包放
/usr/local/tomcat/webapps,JAR包放/home/project)。
四、Javaweb项目部署与公网访问配置
4.1 WAR包项目部署(依赖Tomcat)
步骤1:Tomcat自动解压部署
将WAR包上传到/usr/local/tomcat/webapps目录后,Tomcat会自动解压WAR包,生成同名文件夹,无需手动操作。
# 查看webapps目录,确认解压文件夹 ls /usr/local/tomcat/webapps # 若未自动解压,重启Tomcat /usr/local/tomcat/bin/shutdown.sh /usr/local/tomcat/bin/startup.sh
步骤2:配置项目数据库连接
修改项目数据库配置文件(如jdbc.properties、application.yml),将数据库地址改为服务器公网IP,用户名密码改为MySQL配置的账号密码:
# jdbc.properties示例 jdbc.driver=com.mysql.cj.jdbc.Driver jdbc.url=jdbc:mysql://123.45.67.89:3306/demo_db?useSSL=false&serverTimezone=UTC jdbc.username=root jdbc.password=Admin@123
步骤3:公网访问项目

浏览器输入http://服务器公网IP:端口/项目名(端口为Tomcat配置的80或8080,项目名为WAR包名称),正常访问页面即部署成功。
4.2 Spring Boot JAR包项目部署(内置Tomcat)
步骤1:后台运行JAR包(避免关闭终端后项目停止)
# 进入JAR包所在目录 cd /home/project # 后台运行JAR包(指定端口,默认8080) nohup java -jar demo.jar --server.port=80 > nohup.out 2>&1 & # 查看运行日志 tail -f nohup.out # 查看进程(确认项目运行) ps -ef | grep java
参数说明:nohup后台运行,&脱离终端,nohup.out日志输出文件。
步骤2:设置JAR包开机自启
# 创建自启脚本 vim /etc/systemd/system/demo.service # 写入以下内容 [Unit] Description=Demo Spring Boot Project After=network.target [Service] Type=simple WorkingDirectory=/home/project ExecStart=/usr/bin/java -jar demo.jar --server.port=80 SuccessExitStatus=143 Restart=always [Install] WantedBy=multi-user.target # 保存退出,生效配置 systemctl daemon-reload systemctl enable demo systemctl start demo
步骤3:公网访问项目
浏览器输入http://服务器公网IP:80(或指定端口),直接访问项目首页,无需输入项目名。
五、项目优化与安全配置
5.1 性能优化
JVM内存优化:修改Tomcat的
catalina.sh或JAR包启动命令,调整内存参数:# 示例:设置初始内存512M,最大内存1G JAVA_OPTS="-Xms512m -Xmx1024m -Dfile.encoding=UTF-8" # JAR包启动示例 nohup java -jar -Xms512m -Xmx1024m demo.jar > nohup.out 2>&1 &
Tomcat优化:修改
server.xml,调整连接数、禁用AJP协议,提高并发能力。
5.2 安全配置
数据库安全:生产环境关闭MySQL 3306端口公网访问,使用腾讯云内网地址连接,设置强密码并定期更换。
服务器安全:定期更新系统补丁(
yum update -y),关闭不必要的系统服务,禁止弱密码SSH登录。项目安全:避免数据库密码硬编码,使用配置文件或环境变量存储,定期更新项目依赖包,修复安全漏洞。
六、常见问题排查(新手必看)
6.1 端口冲突(address already in use)
原因:端口被其他进程占用
解决:
# 查看端口占用进程(以80端口为例) netstat -tulnp | grep 80 # 杀死占用进程(替换进程PID) kill -9 进程PID # 重启Tomcat或JAR包
6.2 项目访问404
原因:WAR包未解压、访问路径错误、Tomcat未启动
解决:
检查Tomcat是否启动:
systemctl status tomcat查看webapps目录是否有解压文件夹:
ls /usr/local/tomcat/webapps确认访问路径:
http://公网IP:端口/项目名(项目名与WAR包名一致)
6.3 数据库连接失败
原因:MySQL未启动、3306端口未开放、账号密码错误、远程授权未配置
解决:
# 检查MySQL状态 systemctl status mysqld # 开放3306端口(安全组+防火墙) # 重新授权远程访问(登录MySQL执行) GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'Admin@123'; FLUSH PRIVILEGES;
6.4 Tomcat启动失败
原因:JDK环境变量配置错误、端口冲突、权限不足
解决:
查看启动日志:
tail -f /usr/local/tomcat/logs/catalina.out验证JDK环境变量:
echo $JAVA_HOME修改目录权限:
chmod -R 777 /usr/local/tomcat
七、总结
腾讯云Linux服务器部署Javaweb项目,核心流程为服务器选型→安全组配置→环境搭建(JDK+Tomcat+MySQL)→项目打包上传→部署运行→公网访问→优化排查。传统WAR包依赖Tomcat容器部署,Spring Boot JAR包内置容器更便捷,新手推荐从WAR包部署入手,熟悉流程后再尝试JAR包部署。部署过程中需重点关注安全组端口开放、环境变量配置、数据库远程授权三大关键点,遇到问题优先查看日志排查,确保项目稳定运行。
简易问答(5-6个)
Q1:腾讯云Linux服务器部署Javaweb项目必须安装Tomcat吗?
A1:不一定。传统WAR包项目需安装独立Tomcat;Spring Boot JAR包项目内置Tomcat容器,无需独立安装,直接运行JAR包即可。
Q2:为什么配置了安全组开放8080端口,还是无法访问项目?
A2:可能是服务器系统防火墙(firewalld)未开放端口,或Tomcat未启动、端口配置错误,需关闭系统防火墙或开放对应端口,同时检查Tomcat运行状态。
Q3:Javaweb项目部署后访问页面出现中文乱码怎么解决?
A3:可修改Tomcat的catalina.sh文件,添加JAVA_OPTS="-Dfile.encoding=UTF-8 -Dsun.jnu.encoding=UTF-8",重启Tomcat即可解决中文乱码问题。
Q4:Spring Boot JAR包运行后,关闭终端项目就停止了怎么办?
A4:使用nohup命令后台运行JAR包,命令为nohup java -jar 项目名.jar > nohup.out 2>&1 &,这样关闭终端后项目仍会在后台运行。
Q5:如何实现Javaweb项目开机自启?
A5:可通过systemctl创建系统服务,编写.service文件配置启动命令,执行systemctl daemon-reload和systemctl enable 服务名,即可设置开机自启。
Q6:生产环境中MySQL数据库可以开放3306端口公网访问吗?
A6:不建议。公网开放3306端口存在极大安全风险,生产环境可使用腾讯云内网地址连接MySQL,或通过云数据库MySQL内网访问,避免公网暴露。





