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
阅读剩余 75%

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

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

相关文章

  • Java Spring Boot请求方式与请求映射过程分析

    Java Spring Boot请求方式与请求映射过程分析 引言 Java Spring Boot是一款高效、快速、便捷的Java Web框架,通过对象依赖注入(DI)和面向切面编程(AOP)实现了模块化开发,提高了代码的简洁性和可维护性,常用于开发web应用程序、RESTful API接口等。 本文将详细讲解Java Spring Boot中的请求方式和请…

    Java 2023年5月19日
    00
  • 很多人竟然不知道Java线程池的创建方式有7种

    当涉及到处理并发编程时,线程池是一个非常重要的主题。Java提供了创建线程池的多种方式。 什么是线程池? 在Java中,线程池代表着一组线程。它们在同一时间内以任务队列的形式运行,处理属于同一个应用程序的多个任务。线程池有助于简化多任务处理的管理并提高效率,因为它们可以重复利用资源。 如何创建线程池? Java提供了7种方式来创建线程池。这些方式分别是: E…

    Java 2023年5月19日
    00
  • Java网络编程教程之设置请求超时的方法

    下面我会详细讲解Java网络编程中如何设置请求超时的方法,包括以下几个步骤: 1.建立URLConnection连接对象 Java中处理网络请求的核心类是URLConnection,可以通过它来建立HTTP等网络请求连接。我们可以使用如下代码建立一个URLConnection连接: URLConnection connection = new URL(url…

    Java 2023年5月20日
    00
  • JSP漏洞大观

    首先需要说明的是,JSP漏洞有很多类型,涉及的攻击技术也很复杂,因此本文将无法涵盖全部。 文件包含漏洞 文件包含漏洞是指,攻击者构造恶意请求,让服务器端执行包含致命代码的文件,从而实现代码注入与代码执行等攻击。 漏洞成因:Web开发人员在编写JSP文件时,没有正确处理外部传入的参数,导致攻击者可以构造恶意参数,使服务器执行恶意的文件。 攻击示例: <!…

    Java 2023年6月2日
    00
  • SpringMVC REST风格深入详细讲解

    SpringMVC REST 风格深入详细讲解 什么是 RESTful API? RESTful 是以表述性状态转移(Representational State Transfer,缩写 REST)为核心的架构风格,所有的设计都以此为中心。在 RESTful 风格的 API 设计中,使用标准的 HTTP 方法(GET, POST, PUT, DELETE)来…

    Java 2023年5月16日
    00
  • jsp 文件下载示例代码

    下面是关于 JSP 文件下载示例代码的完整攻略: 一、准备工作 在编写 JSP 文件下载示例之前,我们需要准备以下工作: 创建一个 download.jsp 页面,用于处理文件下载请求并返回文件内容; 确定要下载的文件路径,并将该路径作为参数传递给 download.jsp 页面。 二、JSP 文件下载示例代码 以下是一个标准的 JSP 文件下载示例代码: …

    Java 2023年6月15日
    00
  • java calendar 日期实现不断加一天的代码

    此处提供两种计算 Java 日期的方法,可以达到不断加一天的效果。 方法一:使用 Calendar 类 Java 中可以使用 Calendar 类来操作日期,这个类提供了丰富的方法来计算日期、时间、星期等信息,而且使用 Calendar 类也很简单。下面给出示例代码: import java.util.Calendar; public class Calen…

    Java 2023年5月20日
    00
  • JSONObject用法详解

    JSONObject用法详解 什么是JSONObject? JSONObject是Java中一个常用的类库,通常用于处理JSON格式数据。JSONObject本质上是一个字符串到值的映射,是一种键值对的容器。在Java中使用JSONObject可以将JSON格式数据转化为Java对象进行操作。 JSONObject使用方法 创建JSONObject对象 最常…

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