当你第一次将本地开发的JavaWeb项目部署到云服务器时,面对陌生的Linux命令和复杂的配置流程,难免会感到无从下手。本指南将带你从零开始,用最直观的方式完成腾讯云轻量应用服务器上的全栈部署。不同于简单的步骤罗列,我们将深入每个环节背后的原理,并针对新手最容易卡壳的环节进行重点突破。
在开始部署前,确保你已经完成腾讯云轻量应用服务器的购买,并选择CentOS 8作为操作系统。建议选择2核4G及以上配置以获得更流畅的体验。以下是需要提前准备的软件清单:
注意:所有工具建议从官网下载最新稳定版,避免使用来路不明的安装包
首次登录服务器时,建议立即进行基础安全设置:
bash复制# 更新系统组件
sudo yum update -y
# 创建专用部署用户(避免直接使用root)
adduser deployer
passwd deployer
# 授予sudo权限
usermod -aG wheel deployer
CentOS 8的yum源中已经包含OpenJDK 1.8,执行以下命令一键安装:
bash复制sudo yum install -y java-1.8.0-openjdk-devel
验证安装是否成功:
bash复制java -version
# 应输出类似:openjdk version "1.8.0_322"
配置JAVA_HOME环境变量:
bash复制# 查找JDK安装路径
sudo alternatives --config java
# 编辑profile文件
sudo vi /etc/profile
# 在文件末尾添加(路径替换为实际值)
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.322.b07-2.el8_5.x86_64
export PATH=$PATH:$JAVA_HOME/bin
# 使配置生效
source /etc/profile
由于yum源不提供Tomcat,我们需要手动安装:
bash复制cd /opt
sudo tar -zxvf apache-tomcat-8.5.xx.tar.gz
sudo mv apache-tomcat-8.5.xx /usr/local/tomcat
sudo chown -R deployer:deployer /usr/local/tomcat
配置Tomcat服务自启动:
bash复制# 创建systemd服务文件
sudo vi /etc/systemd/system/tomcat.service
# 写入以下内容
[Unit]
Description=Apache Tomcat 8.5
After=syslog.target network.target
[Service]
User=deployer
Group=deployer
Type=oneshot
ExecStart=/usr/local/tomcat/bin/startup.sh
ExecStop=/usr/local/tomcat/bin/shutdown.sh
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
# 启用服务
sudo systemctl daemon-reload
sudo systemctl enable tomcat
sudo systemctl start tomcat
验证Tomcat是否正常运行:
bash复制curl http://localhost:8080
# 应返回Tomcat默认页面HTML代码
安装MySQL社区版:
bash复制sudo yum install -y mysql-server
sudo systemctl start mysqld
sudo systemctl enable mysqld
初始安全设置:
bash复制sudo mysql_secure_installation
# 按提示设置root密码、移除匿名用户等
创建项目专用数据库账户:
sql复制CREATE DATABASE webapp_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'webapp_user'@'localhost' IDENTIFIED BY 'StrongPassword123!';
GRANT ALL PRIVILEGES ON webapp_db.* TO 'webapp_user'@'localhost';
FLUSH PRIVILEGES;
腾讯云控制台的安全组设置是关键环节,需要开放以下端口:
| 端口号 | 协议 | 用途 | 建议范围 |
|---|---|---|---|
| 22 | TCP | SSH远程连接 | 仅限个人IP |
| 8080 | TCP | Tomcat应用端口 | 0.0.0.0/0 |
| 3306 | TCP | MySQL数据库 | 禁止公网访问 |
配置防火墙规则:
bash复制sudo firewall-cmd --permanent --add-port=8080/tcp
sudo firewall-cmd --reload
重要:生产环境建议将3306端口限制为仅内网访问,并通过SSH隧道连接数据库
现代JavaWeb项目通常采用Maven构建,在项目根目录执行:
bash复制mvn clean package
生成的war文件通过FileZilla上传到Tomcat的webapps目录:
Tomcat会自动解压war包,通常需要30-60秒完成部署。可通过日志观察进度:
bash复制tail -f /usr/local/tomcat/logs/catalina.out
本地导出数据库结构:
bash复制mysqldump -u root -p webapp_db > webapp_db.sql
通过FileZilla上传sql文件到服务器后导入:
bash复制mysql -u webapp_user -p webapp_db < webapp_db.sql
修改项目中的数据库连接配置:
properties复制# /usr/local/tomcat/webapps/your-app/WEB-INF/classes/application.properties
spring.datasource.url=jdbc:mysql://localhost:3306/webapp_db?useSSL=false
spring.datasource.username=webapp_user
spring.datasource.password=StrongPassword123!
重启Tomcat使配置生效:
bash复制sudo systemctl restart tomcat
调整Tomcat的server.xml配置连接池:
xml复制<Connector port="8080" protocol="HTTP/1.1"
maxThreads="200"
minSpareThreads="10"
acceptCount="100"
connectionTimeout="20000"
redirectPort="8443" />
MySQL性能优化建议:
ini复制# /etc/my.cnf
[mysqld]
innodb_buffer_pool_size = 1G
innodb_log_file_size = 256M
max_connections = 200
Tomcat启动失败:
netstat -tulnp | grep 8080journalctl -u tomcat -n 50MySQL连接问题:
SHOW GRANTS FOR 'webapp_user'@'localhost'grep bind-address /etc/my.cnf应用部署异常:
ls -l /usr/local/tomcat/webappsecho $JAVA_HOME对于需要频繁更新的项目,可以考虑配置自动化部署:
示例部署脚本片段:
bash复制#!/bin/bash
# 停止Tomcat
ssh deployer@your-server-ip "systemctl stop tomcat"
# 上传新版本
scp target/*.war deployer@your-server-ip:/usr/local/tomcat/webapps/
# 启动服务
ssh deployer@your-server-ip "systemctl start tomcat"
实际部署中遇到最多的问题是文件权限和路径配置错误。建议每次修改配置后,使用ls -l检查文件归属,并用systemctl status tomcat确认服务状态。当8080端口无法访问时,先用curl localhost:8080测试本地连通性,逐步缩小问题范围。