腾讯云Linux云服务器部署Javaweb项目全流程指南

apphuang2026年06月10日 11:22:468

腾讯云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:配置腾讯云安全组

  1. 进入腾讯云CVM控制台,找到目标服务器,点击“安全组”→“配置规则”。

  2. 添加入站规则,协议选择TCP,开放以下端口:

    • 22端口:SSH远程连接(默认开放,可限制IP提高安全)。

    • 80端口:HTTP公网访问(生产环境优先使用80端口)。

    • 443端口:HTTPS加密访问(可选,需配置SSL证书)。

    • 8080端口:Tomcat默认端口(测试环境使用,生产建议改为80端口)。

    • 3306端口:MySQL数据库端口(仅测试开放,生产环境建议关闭,通过内网访问)。

  3. 出站规则默认全部允许,无需修改,保存规则生效。

步骤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安装包(清华镜像源,速度快)

腾讯云Linux云服务器部署Javaweb项目全流程指南

# 进入/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配置打包工件

  1. 打开IDEA项目,点击File→Project Structure→Artifacts→+→Web Application→Archive

  2. 选择项目名称,输出目录选择target,点击Apply→OK。

步骤2:执行打包命令

腾讯云Linux云服务器部署Javaweb项目全流程指南

  1. 点击Build→Build Artifacts→项目名→Build

  2. 打包成功后,在项目target目录下生成项目名.war文件。

3.2 Spring Boot JAR包项目打包(Maven命令)

Spring Boot项目内置Tomcat容器,打包后为可执行JAR包,无需独立安装Tomcat,部署更简单。

步骤1:Maven打包

  1. 确保项目pom.xml中配置Spring Boot打包插件:

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>
  1. IDEA底部打开Terminal,执行打包命令:

mvn clean package -DskipTests
  1. 打包成功后,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可视化上传(新手推荐)

  1. FinalShell连接服务器后,右侧打开文件管理器。

  2. 本地选择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:公网访问项目

腾讯云Linux云服务器部署Javaweb项目全流程指南

浏览器输入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未启动
解决

  1. 检查Tomcat是否启动:systemctl status tomcat

  2. 查看webapps目录是否有解压文件夹:ls /usr/local/tomcat/webapps

  3. 确认访问路径:http://公网IP:端口/项目名(项目名与WAR包名一致)

    腾讯云Linux云服务器部署Javaweb项目全流程指南

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环境变量配置错误、端口冲突、权限不足
解决

  1. 查看启动日志:tail -f /usr/local/tomcat/logs/catalina.out

  2. 验证JDK环境变量:echo $JAVA_HOME

  3. 修改目录权限: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内网访问,避免公网暴露。

相关文章

腾讯云代理商有哪些

腾讯云代理商有哪些

点击下链接注册一下腾讯云账号http://www.ccusoft.com/t.htm腾讯云代理商很多,但是每年能做到1个亿以上的,我估算大概3家左右…

腾讯云服务器购买优惠!3 个省钱攻略 + 1 个安全真相,新手必看!

腾讯云服务器购买优惠!3 个省钱攻略 + 1 个安全真相,新手必看!

最近后台总收到小伙伴私信:“腾讯云服务器看着挺好,但价格有点顶,学生党 / 小团队实在买不起咋办?” 别急!今天就来手把手教你 “花小钱办大事”,不光有省钱攻略,还会扒一扒大家最关心的安全问题,看完这…

After 10 Years as a Tencent Cloud Agent, Let Me Talk About Rebates

After 10 Years as a Tencent Cloud Agent, Let Me Talk About Rebates

Lately, I’ve been getting a lot of questions from friends: “Does Tencent offer rebates? Can you…

2026腾讯云代理商返利政策深度解析:头部代理合作指南与成本优化策略

2026腾讯云代理商返利政策深度解析:头部代理合作指南与成本优化策略

一、腾讯云代理商返利机制核心逻辑1. 行业背景与代理模式腾讯云作为国内公有云市场的第二大领导者(据IDC 2025年数据,占据国内27.6%的市场份额),采用渠道商代理模式拓展市场。代理商负…

2026腾讯云代理商返利政策深度解析:头部代理合作指南与成本优化策略

2026腾讯云代理商返利政策深度解析:头部代理合作指南与成本优化策略

一、腾讯云代理商返利机制核心逻辑1. 行业背景与代理模式腾讯云作为国内公有云市场的第二大领导者(据IDC 2025年数据,占据国内27.6%的市场份额),采用渠道商代理模式拓展市场。代理商负…

2026腾讯云代理商返佣政策全解析:五级代理体系与企业上云成本优化指南

2026腾讯云代理商返佣政策全解析:五级代理体系与企业上云成本优化指南

一、腾讯云五级代理体系:权益阶梯与合作价值1. 五级代理的核心权益差异腾讯云按规模、服务能力与合作深度,构建了从基础到顶级的五级代理体系,各级权益呈现显著阶梯差:•标准级代理:入门门槛最低,仅能提供基…