pringboot3.0 创建的javaweb 应用,部署在腾讯云上的整体步骤

将基于 Spring Boot 3.0 的 JavaWeb 应用部署到腾讯云,并关注云主机的安全。现梳理一个清晰的部署指南和安全策略,并用一个表格汇总主要步骤和安全要点:

|--------------|-----------------------|----------------------------------------------------------------------|------|
| 阶段 | 主要任务/防护领域 | 关键点/安全措施 | 是否可选 |
| 前期准备 | 项目打包 | 使用 mvn clean package 打包应用,生成可执行的 JAR 文件。Spring Boot 3.0 需 JDK 17+。 | 必选 |
| | 云服务器准备 | 选择操作系统(如 Ubuntu、CentOS),安装 JDK 17+。 | 必选 |
| 安全组配置 | 控制网络入口 | 严格限制入站规则,仅开放必要端口(如 80, 443, 22),并对 22 端口限制访问源 IP。 | 必选 |
| 应用部署 | 上传与启动 | 使用 SCP、Xftp 等工具上传 JAR 包。使用 nohupsystemd 后台运行。 | 必选 |
| 域名与HTTPS | 域名解析 | 在域名管理平台添加 A 记录,解析到服务器公网 IP。 | 可选 |
| | Nginx 反向代理与 HTTPS | 使用 Nginx 作为反向代理,配置 HTTPS(推荐使用腾讯云免费 SSL 证书),并强制 HTTP 重定向到 HTTPS。 | 强烈推荐 |
| 安全增强 | 云安全产品 | 考虑启用腾讯云主机安全(CWPP)Web 应用防火墙(WAF)DDoS 防护。 | 可选 |
| | 应用自身安全 | 保持 Spring Boot 及依赖库版本最新 ,避免已知漏洞。妥善保管敏感信息(如数据库密码),避免硬编码。 | 必选 |
| | 服务器安全 | 定期更新系统补丁配置强密码 或 SSH 密钥,关闭不需要的系统服务。 | 必选 |

🚀 部署步骤详解

  1. 前期准备与项目打包
    • 确保你的 Spring Boot 3.0 应用在本地开发环境运行无误。Spring Boot 3.0 需要 JDK 17 或更高版本。
    • 在项目根目录下,使用 Maven 命令 mvn clean package 将项目打包成可执行的 JAR 文件。打包后的 JAR 文件通常位于 target 目录下。
  1. 云服务器准备与环境配置
    • 在腾讯云上创建一台云服务器(CVM)。选择你熟悉的 Linux 发行版(如 Ubuntu、CentOS)。
    • 通过 SSH 登录服务器,安装 JDK 17+ 环境。
      • 例如,在 Ubuntu 上可以尝试:sudo apt-get install openjdk-17-jdk
      • 验证安装:java -version
    • (如果需要)安装应用所需的其他环境,如 MySQL、Redis 等。
  1. 上传项目与启动应用
    • 使用 scp 命令、Xftp 或其他 FTP/SFTP 工具,将本地打包好的 JAR 文件上传到云服务器的指定目录(例如 /home/ubuntu//usr/local/app/)。
      • scp 示例:scp /path/to/your-project.jar root@你的服务器公网IP:/path/on/server/
    • 在服务器上,进入 JAR 文件所在目录,使用 nohup 命令启动应用以确保其后台稳定运行:

      nohup java -jar your-project.jar > app.log 2>&1 &

你也可以编写更规范的 systemd 服务单元文件来管理和守护进程。

  1. 配置域名与 HTTPS(推荐)
    • 域名解析 :如果你有域名,可以在域名注册商的管理平台(如腾讯云域名管理)添加一条 A 记录,将域名(例如 www.example.com@ 代表主域名)解析到你的云服务器公网 IP。DNS 解析生效需要一些时间。
    • Nginx 反向代理与 HTTPS
      • 在服务器上安装 Nginx(如 Ubuntu:sudo apt install nginx)。
      • 申请 SSL 证书:腾讯云提供免费的 SSL 证书(如 TrustAsia 品牌),申请后下载适用于 Nginx 的证书文件(.crt.key)。
      • 配置 Nginx:编辑 Nginx 配置文件(如 /etc/nginx/conf.d/yourdomain.conf),设置 HTTP 到 HTTPS 的重定向,并配置 HTTPS 服务器块,将请求反向代理到你的 Spring Boot 应用(例如 http://localhost:8080)。示例配置可参考。
      • 重启 Nginx:sudo systemctl restart nginx

🛡️ 强化云主机安全,防范非法请求

除了表格中提到的安全组最小化开放端口使用 Nginx 反向代理并配置 HTTPS,你还可以:

  1. 启用腾讯云安全产品
    • 主机安全(CWPP) :提供资产管理、漏洞检测与修复、木马文件查杀、黑客入侵检测(如异常登录、暴力破解、恶意请求、高危命令、反弹 Shell 等)等多种安全防护功能。它能帮助你快速发现黑客的渗透扫描行为并及时预警
    • Web 应用防火墙(WAF):有效防护 SQL 注入、XSS 跨站脚本、Webshell 上传等针对 Web 应用的攻击,避免网站被黑客入侵导致数据泄露。
    • DDoS 防护:腾讯云提供高防包/高防IP等服务,帮助抵御大规模分布式拒绝服务攻击,保障业务可用性。
  1. 加强应用与服务器自身安全
    • 保持组件更新 :定期更新 Spring Boot、依赖库以及服务器操作系统的最新安全补丁,及时修复已知的安全漏洞
    • 安全编程:对用户输入进行严格的校验和过滤,防范 SQL 注入、XSS 等常见 Web 攻击。
    • 妥善管理敏感信息:避免在代码中硬编码数据库密码、API 密钥等敏感信息。建议使用环境变量或腾讯云的**密钥管理服务(KMS)**来安全地存储和管理密钥。
    • 强化服务器访问控制
      • 为 SSH 登录使用密钥对 认证,并禁用 root 用户的密码登录
      • 修改默认端口:考虑修改应用的默认监听端口和 SSH 端口(但需同时在安全组中放行修改后的端口)。
      • 定期审计日志:查看应用日志、Nginx 访问/错误日志以及系统安全日志,及时发现异常行为。腾讯云主机安全也提供日志留存和检索功能。

💎 总结与建议

部署 Spring Boot 应用到腾讯云并保障其安全,是一个系统性的工作。核心在于:前期充分准备(环境、打包)部署过程清晰(上传、启动、域名解析)安全防护层层设防(安全组 -> Nginx反向代理/HTTPS -> 云安全产品 -> 应用/系统自身安全)

对于避免黑客非法直接请求云主机,务必重视:

  • 安全组是第一道防线,务必遵循最小权限原则。
  • 使用 Nginx 反向代理并启用 HTTPS 是推荐做法,既能提升安全性,又能提升专业性。
  • 强烈建议考虑启用腾讯云的主机安全(CWPP)等安全产品,它们能提供专业、主动的防护能力,帮你节省大量自行排查安全威胁的精力和时间,特别是处理敏感数据或面临较高安全风险的应用。
相关推荐
Clownseven7 小时前
CN2 GIA线路深度解析:阿里云/腾讯云选哪个?(附三网评测)
阿里云·云计算·腾讯云
roman_日积跬步-终至千里7 小时前
【软件架构设计(23)】云计算与云原生技术
云原生·云计算
荣光波比8 小时前
Nginx 实战系列(四)—— Nginx反向代理与负载均衡实战指南
运维·nginx·云计算·负载均衡
g66x8 小时前
自建prometheus监控腾讯云k8s集群
kubernetes·腾讯云·prometheus
懒人村杂货铺8 小时前
[特殊字符] 跨端视频通话实战:腾讯云 TRTC + IM(React Native & Web)
react native·音视频·腾讯云
AKAMAI19 小时前
Entity Digital Sports 降低成本并快速扩展
人工智能·云计算
荣光波比20 小时前
Nginx 实战系列(一)—— Web 核心概念、HTTP/HTTPS协议 与 Nginx 安装
linux·运维·服务器·nginx·云计算
慧星云1 天前
双节模型创作大赛开赛啦:和魔多一起欢庆中秋国庆
人工智能·云计算·aigc
Hi202402171 天前
基于阿里云ECS搭建Tailscale DERP中继服务器:提升跨网络连接速度
服务器·阿里云·云计算