Spring boot项目部署到云服务器小白教程详解

  1. 准备工作

在进行 Spring Boot 项目部署之前,首先需要做好以下准备工作:

  • 一台云服务器(常用的有阿里云、腾讯云、华为云等)。
  • 安装 JDK 环境,一般推荐使用 OpenJDK 或 Oracle JDK。
  • 安装 Maven,用于构建打包项目。
  • 安装 Nginx,用作反向代理服务器。

  • 上传项目代码

可以通过 FTP 或控制台上传本地的 Spring Boot 项目代码到云服务器中。在上传项目代码之前,先确保服务器上已经安装了 Git 和相应的代码管理工具。

示例1:使用 Git 命令将本地项目代码上传到云服务器

# 克隆代码到本地
git clone https://github.com/xxx/xxx.git

# 进入项目目录
cd xxx

# 修改配置文件(如果需要)
vim application.properties

# 打包项目
mvn clean package -Dmaven.skip.test=true

# 上传项目到服务器
scp target/xxx.jar username@server_ip:/path/to/target/

示例2:使用 FTP 工具将本地项目代码上传到云服务器

首先,需要在云服务器上安装和配置 FTP 服务器。然后,使用 FTP 工具(例如 FileZilla)上传本地项目代码到云服务器上。

  1. 安装 Java 运行环境

在云服务器上安装 JDK 环境,一般推荐使用 OpenJDK 或 Oracle JDK。

示例1:使用 YUM 安装 OpenJDK

# 安装 OpenJDK
yum install java-1.8.0-openjdk -y

# 查看 Java 版本
java -version

示例2:下载安装 Oracle JDK

从 Oracle 官网下载所需版本的 JDK 安装包,然后通过命令行方式安装。

# 解压安装包
tar -zxvf jdk-8u211-linux-x64.tar.gz

# 设置 JAVA_HOME 环境变量
export JAVA_HOME=/path/to/jdk/jdk1.8.0_211

# 更新 PATH 环境变量
export PATH=$JAVA_HOME/bin:$PATH

# 查看 Java 版本
java -version
  1. 安装 Nginx

在云服务器上安装 Nginx,用作反向代理服务器。

示例1:使用 YUM 安装 Nginx

# 安装 Nginx
yum install nginx -y

# 启动 Nginx
systemctl start nginx

# 查看 Nginx 状态
systemctl status nginx

示例2:编译安装 Nginx

# 下载 Nginx 源码
wget http://nginx.org/download/nginx-1.14.0.tar.gz

# 解压源码
tar -zxvf nginx-1.14.0.tar.gz

# 编译安装 Nginx
cd nginx-1.14.0
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
make && make install

# 启动 Nginx
/usr/local/nginx/sbin/nginx

# 查看 Nginx 状态
/usr/local/nginx/sbin/nginx -s status
  1. 配置 Nginx

在 Nginx 中配置反向代理,将客户端的请求转发到 Spring Boot 项目。

示例1:配置 Nginx 反向代理

# 创建 Nginx 配置文件
vim /usr/local/nginx/conf/nginx.conf

# 添加以下配置
server {
    listen 80;
    server_name example.com;
    location / {
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

# 重启 Nginx
/usr/local/nginx/sbin/nginx -s reload

示例2:配置 HTTPS 反向代理

# 生成 SSL 证书
openssl req -newkey rsa:2048 -nodes -keyout example.key -x509 -days 365 -out example.crt

# 创建 Nginx 配置文件
vim /usr/local/nginx/conf/nginx.conf

# 添加以下配置
server {
    listen 443 ssl;
    server_name example.com;
    ssl_certificate /path/to/example.crt;
    ssl_certificate_key /path/to/example.key;
    location / {
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

# 重启 Nginx
/usr/local/nginx/sbin/nginx -s reload
  1. 启动 Spring Boot 项目

在云服务器上启动 Spring Boot 项目,并在 Nginx 的反向代理下测试访问。

示例1:使用 jar 包启动 Spring Boot 项目

# 进入项目目录
cd /path/to/target

# 启动项目
nohup java -jar xxx.jar &

# 查看日志输出
tail -f nohup.out

示例2:使用 systemctl 启动 Spring Boot 项目

# 创建项目启动脚本
vim /etc/systemd/system/xxx.service

# 添加以下配置
[Unit]
Description=xxx
After=syslog.target

[Service]
User=root
ExecStart=/usr/bin/java -jar /path/to/target/xxx.jar
SuccessExitStatus=143

[Install]
WantedBy=multi-user.target

# 重新加载配置
systemctl daemon-reload

# 启动服务
systemctl start xxx

# 查看状态
systemctl status xxx

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Spring boot项目部署到云服务器小白教程详解 - Python技术站

(0)
上一篇 2023年5月19日
下一篇 2023年5月19日

相关文章

  • java集合框架 arrayblockingqueue应用分析

    Java集合框架ArrayBlockingQueue应用分析 一、ArrayBlockingQueue介绍 ArrayBlockingQueue是Java集合框架中的一种阻塞队列,它是线程安全的有限队列,底层是使用数组实现的,它具有FIFO(先进先出)的特性,支持高效的并发访问。ArrayBlockingQueue是一种固定长度的队列,当队列已满时,会阻塞插…

    Java 2023年5月26日
    00
  • java迭代器移除元素出现并发修改异常的原因及解决

    Java迭代器是用于遍历集合类元素的重要工具,然而有时可能会在使用过程中遇到“并发修改异常”(ConcurrentModificationException),指的是在使用迭代器访问集合过程中,通过集合自身的某些方法(如add、remove、clear等)修改了集合元素而导致的异常。本文将讲解这个异常的原因及解决方法,同时会提供两个示例来解释如何在实际操作中…

    Java 2023年5月27日
    00
  • JAVA多线程知识汇总

    JAVA多线程知识汇总 为什么需要多线程 在单线程模式下,当代码执行到IO操作时,CPU资源就会空闲等待IO操作完成,这样会导致CPU效率低下。而多线程模式下,线程的数量可以与CPU的核心数相匹配,能够更好地充分利用CPU资源,在IO操作等待的同时处理其他代码而不会浪费CPU。 如何使用多线程 创建线程 Java中使用继承Thread类或者实现Runnabl…

    Java 2023年5月19日
    00
  • java 数组转list的两种方式

    Java 数组转 List 的方式有两种,分别为使用 Arrays.asList() 和通过遍历数组进行转换。下面将会对这两种方式进行详细讲解。 使用 Arrays.asList() Arrays.asList() 方法可以方便地将数组转换为 List,代码如下所示: String[] array = {"a", "b&quot…

    Java 2023年5月26日
    00
  • Java Math类的三个方法ceil,floor,round用法

    Java Math类是一个非常强大且常用的数学类,该类提供了许多数学运算方法和常量定义。其中ceil、floor和round方法都用来处理数字的舍入问题。 Math.ceil()的使用方法 Math.ceil()方法是取上整数的函数,即返回大于等于输入参数的最小整数。其语法格式如下: public static double ceil(double a) 其…

    Java 2023年5月26日
    00
  • SpringBoot中使用Ehcache的详细教程

    下面我来为您详细讲解“SpringBoot中使用Ehcache的详细教程”。 简介 Ehcache是一个流行的开源缓存解决方案,它提供了多级缓存机制、内存缓存和磁盘缓存等多种缓存策略,并具有快速、灵活、可扩展等优点。在SpringBoot中使用Ehcache可以加速应用程序的响应速度,提高应用程序的性能。 步骤 1. 引入依赖 在SpringBoot项目的p…

    Java 2023年5月20日
    00
  • Java中关于字典树的算法实现

    Java中的字典树,也叫前缀树,是一种基于字符串快速查找的数据结构。它的基本性质是:根节点为空,每个节点代表一个字母,沿着从根节点到叶子节点的路径可以得到一个字符串。通过在树形结构中查找匹配的字符串,可以实现对字符串的高效管理和检索。 具体实现过程如下: 一、数据结构定义 我们可以采用一个节点类,来定义字典树中的每个节点。代码如下: class TrieNo…

    Java 2023年5月19日
    00
  • Java如何基于反射获取对象属性信息

    获取Java对象的属性信息是Java语言中很常见的一个需求,在Java中通过反射机制可以很方便的完成。本篇攻略将会详细讲解如何基于反射获取Java对象的属性信息。 反射机制 Java的反射机制是指在程序运行时获取类的相关信息,可以获取类名、属性、方法等相关信息。Java反射机制是通过Java.lang.reflect包中的类和接口实现的,主要应用在框架开发、…

    Java 2023年5月26日
    00
合作推广
合作推广
分享本页
返回顶部