微信登录

部署 - 云部署 - 部署到云平台

Java - Web - Spring 《部署 - 云部署 - 部署到云平台》

引言

在当今数字化的时代,云平台凭借其弹性伸缩、高可用性和便捷的管理等特性,成为了企业和开发者部署应用的首选方案。对于基于 Spring 框架开发的 Java Web 应用来说,将其部署到云平台能够极大地提升应用的性能和可维护性。本文将详细介绍如何将 Spring 应用部署到云平台,以阿里云弹性计算服务(ECS)为例进行演示。

准备工作

在开始部署之前,我们需要完成以下准备工作:

  1. 开发环境:确保本地已经安装好 JDK(建议 JDK 8 及以上)、Maven 等开发工具。
  2. 云平台账号:注册并登录阿里云账号,创建 ECS 实例。选择合适的镜像(如 CentOS 7)和配置(根据应用的实际需求)。
  3. Spring 项目:创建一个简单的 Spring Boot Web 项目。

创建 Spring Boot 项目

可以使用 Spring Initializr(https://start.spring.io/) 来快速创建一个 Spring Boot 项目。选择以下配置:

  • Project:Maven Project
  • Language:Java
  • Spring Boot:2.7.5
  • Group:com.example
  • Artifact:spring-cloud-deploy-demo
  • Dependencies:Spring Web

创建好项目后,我们可以在 src/main/java/com/example/springclouddeploydemo 目录下创建一个简单的控制器类:

  1. package com.example.springclouddeploydemo;
  2. import org.springframework.web.bind.annotation.GetMapping;
  3. import org.springframework.web.bind.annotation.RestController;
  4. @RestController
  5. public class HelloController {
  6. @GetMapping("/hello")
  7. public String hello() {
  8. return "Hello, Spring Boot on Cloud!";
  9. }
  10. }

打包项目

在项目根目录下,使用 Maven 命令将项目打包成可执行的 JAR 文件:

  1. mvn clean package

打包完成后,在 target 目录下会生成一个名为 spring-cloud-deploy-demo-0.0.1-SNAPSHOT.jar 的文件。

配置云服务器

连接到 ECS 实例

使用 SSH 工具(如 PuTTY 或 OpenSSH)连接到阿里云 ECS 实例。在终端中输入以下命令:

  1. ssh root@<ECS 实例公网 IP 地址>

输入登录密码后,即可成功连接到 ECS 实例。

安装 Java 和相关依赖

在 ECS 实例上安装 Java 运行环境和其他必要的依赖:

  1. # 安装 OpenJDK 11
  2. yum install java-11-openjdk-devel -y

上传项目 JAR 文件

使用 SCP 命令将本地的 JAR 文件上传到 ECS 实例:

  1. scp target/spring-cloud-deploy-demo-0.0.1-SNAPSHOT.jar root@<ECS 实例公网 IP 地址>:/root

部署和运行应用

启动应用

在 ECS 实例上,进入 JAR 文件所在目录,使用以下命令启动 Spring Boot 应用:

  1. java -jar spring-cloud-deploy-demo-0.0.1-SNAPSHOT.jar

如果需要在后台运行应用,可以使用 nohup 命令:

  1. nohup java -jar spring-cloud-deploy-demo-0.0.1-SNAPSHOT.jar > app.log 2>&1 &

配置防火墙

为了让外部能够访问应用,需要开放应用所使用的端口(默认为 8080):

  1. # 开放 8080 端口
  2. firewall-cmd --zone=public --add-port=8080/tcp --permanent
  3. # 重新加载防火墙规则
  4. firewall-cmd --reload

验证部署结果

在浏览器中输入 http://<ECS 实例公网 IP 地址>:8080/hello,如果看到 Hello, Spring Boot on Cloud! 字样,则说明应用已经成功部署到云平台。

总结

步骤 操作 命令示例
准备项目 创建 Spring Boot 项目并编写代码 无
打包项目 使用 Maven 打包项目 mvn clean package
连接服务器 使用 SSH 连接到 ECS 实例 ssh root@<ECS 实例公网 IP 地址>
安装依赖 安装 Java 运行环境 yum install java-11-openjdk-devel -y
上传文件 使用 SCP 上传 JAR 文件 scp target/spring-cloud-deploy-demo-0.0.1-SNAPSHOT.jar root@<ECS 实例公网 IP 地址>:/root
启动应用 启动 Spring Boot 应用 java -jar spring-cloud-deploy-demo-0.0.1-SNAPSHOT.jar 或 nohup java -jar spring-cloud-deploy-demo-0.0.1-SNAPSHOT.jar > app.log 2>&1 &
配置防火墙 开放应用端口 firewall-cmd --zone=public --add-port=8080/tcp --permanent 和 firewall-cmd --reload

通过以上步骤,我们成功地将一个 Spring Boot Web 应用部署到了阿里云 ECS 云平台。云部署不仅提高了应用的可用性和可扩展性,还降低了运维成本。希望本文能帮助你顺利完成 Spring 应用的云部署。