【项目部署】在亚马逊云(AWS)上使用宝塔面板部署前后端分离的 Vue3 + Spring Boot 项目

news2024/10/12 1:21:09

1. 准备工作

  • AWS 账户:确保你已经注册了 AWS 账户,并且有足够的权限来创建 EC2 实例和配置安全组。【AWS账户注册】注册亚马逊免费云服务器一年期个人用户
  • 项目准备:确保你已经准备好了前端 Vue3 项目(并且已打包生成静态文件)和后端 Spring Boot 项目(打包为 .jar 文件)。

2. 启动 AWS EC2 实例

  1. 登录 AWS 管理控制台
  2. 创建 EC2 实例
    • 导航到 EC2 控制台,点击 “Launch Instance”。
    • 选择适合的操作系统(建议使用 Ubuntu 20.04 或 CentOS 7)。
    • 选择实例类型(如 t2.micro 对小型项目免费使用)。
    • 配置存储和网络,使用默认设置即可,存储建议选择 30GB 以上。有资格使用免费套餐的客户最多可获得 30GB 的通用型 (SSD) 或磁存储空间
    • 点实例ID蓝色那串,下滑在安全中,配置入站规则,点安全详细信息安全组下边的蓝色那串,编辑入站规则,添加规则的示例:点击 “Add Rule”(添加规则),然后按照以下信息设置新的入站规则:
      • Type(类型):选择 Custom TCP(自定义 TCP)。 Protocol(协议):默认是 TCP,保持不变。
      • Port Range(端口范围):输入 80,这是用于 HTTP 的端口。
      • Source Type(源类型):选择 Custom(自定义)。
      • Source(源):输入 0.0.0.0/0,这表示允许任何 IP 地址访问该端口。如果你希望限制为特定 IP 地址访问,输入相应的 IP地址范围。
      • Description(描述):不要用中文,可以输入 “HTTP Access” 作为可选描述,帮助你未来识别这个规则。
  • 连接到 EC2 实例

  • 直接网页连接到EC2 实例

  • 或者配置了ssh就使用 SSH 连接到你的 EC2 实例

    ssh -i "path/to/your-key.pem" ubuntu@your-ec2-public-ip 
    
    • “path/to/your-key.pem”:指的是你保存 .pem 文件的路径。如果 .pem 文件在当前目录下,可以直接写 your-key.pem

    • ubuntu:这是默认的用户名称,取决于你使用的操作系统和 AMI 类型。如果你使用的是 Amazon Linux AMI,则需要使用 ec2-user 用户名。

      • 如果是 Ubuntu 实例,用户名是 ubuntu
      • 如果是 Amazon Linux 2 实例,用户名是 ec2-user
    • your-ec2-public-ip:这是你的 EC2 实例的公共 IP 地址(或公共 DNS),你需要替换为你在 AWS 控制台中找到的实际 IP 地址。

    • 例如:
      ssh -i "~/Downloads/my-key.pem" ubuntu@3.123.456.789

3. 安装宝塔面板

  1. 安装宝塔面板

    • 使用 SSH 连接到 EC2 实例后,执行以下命令安装宝塔面板:
      • Ubuntu 系统
         wget -O install.sh https://download.bt.cn/install/install_lts.sh && sudo bash install.sh ed8484bec
        
  2. 安装完成后,终端会显示宝塔的管理地址和登录信息账号密码,创建一个txt保存一下。使用这些信息通过浏览器访问宝塔面板。 会提示,请在安全组放行 。。 端口,入站规则放行一下。

  3. 复制外网面板地址到Chrome,登录宝塔面板,会提示不安全继续前往就好了,账号密码就用安装好时给的登录信息,阅读同意用户信息协议,绑定官网帐号,这里自行注册。

4. 配置宝塔环境

  1. 安装必要的软件环境
    • 进入宝塔面板,点击 “软件商店”。
    • 安装以下软件:
      • Nginx
      • Redis
      • MySQL
      • Java项目一键部署:安完点进去容器管理那安装一下tomcat
      sudo apt update
      sudo apt install openjdk-11-jdk
      
  2. 数据库导入:数据库,添加数据库,上传sql文件,上传成功后记得导入覆盖,导入成功后就可以点工具看到导入的各个表。

5. 部署前端 Vue3 项目

  1. 准备 Vue3 项目

    • 在本地开发环境中,确保已经构建了 Vue3 项目,使用以下命令生成打包后的静态文件:
      npm run build
      
    • 打包完成后,文件一般会生成在 dist 文件夹中。
  2. 上传 Vue3 静态文件到服务器

    • 将打包好的 dist 文件夹上传到服务器上的网站目录中。
    • 在宝塔面板中,点击左侧的 “网站” -> “添加站点” -> 填写域名或 IP 地址,创建网站。
    • 将 Vue3 的 dist 文件夹上传到该网站的根目录 /www/wwwroot/your-site/
  3. 配置 Nginx 托管静态文件

    • 到这个文件夹/www/server/panel/vhost/nginx 上传.conf 文件
server {
    listen 8010;  # Nginx 用于前端监听的端口
    server_name 43.03.0.3;  # 将此改为你的宝塔服务器 IP

    charset utf-8;

    # 前端静态资源
    location / { 
        alias /www/wwwroot/easypan/admin-front/dist/;
        try_files $uri $uri/ /index.html;
        index index.html index.htm;
    }

    # 代理后端 API 请求
    location /api { 
        proxy_pass http://localhost:9091/api;
        proxy_set_header x-forwarded-for  $remote_addr;
    }
}

  • AWS再加一个入站规则放行8010端口,宝塔安全也放行8010
  • 重启nginx
sudo su
cd /www/server/nginx/sbin
./nginx -s reload
  • 访问43.23.70.3:8010就可以看到前端页面了。

6. 部署后端 Spring Boot 项目

  1. 打包 Spring Boot 项目

    • 在本地开发环境中,使用 Maven 或 Gradle 将 Spring Boot 项目打包为 .jar 文件:
      mvn clean package
      
    • 生成的 .jar 文件通常在 target 文件夹中。
  2. 上传后端项目到服务器

    • 将打包好的 .jar 文件上传到服务器的某个目录下,例如 /www/wwwroot/your-site/java/
    • 上传配置文件application.properties,改一下里面的项目地址之类的。
  3. 启动 Spring Boot 应用

    • 终端进入 .jar 文件所在目录,使用以下命令启动应用:
      sudo su
      nohup java -jar easybbs-web-release-1.0.jar --server.port=9091 > /dev/null 2>&1 &
      
    • 该命令会在后台运行 Spring Boot 项目,日志输出到 backend.log 文件。
  4. 再次打开网站就可以看到验证码正确显示出来了,顺利登陆

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2206481.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据丢失的终极克星来了!EasyRecovery17数据恢复软件

数据丢失的终极克星来了! 各位亲爱的朋友们,你们有没有经历过那种“哎呀妈呀,重要文件找不到了!”的绝望时刻?别急,今天我要向你们安利一款神器——EasyRecovery17数据恢复软件,简直是我们这些“…

Javascript笔试题目(二)

1.如何使用ES6语法对函数所有参数进行求和?请写出具体代码 function sumAll(...args) { // args 是一个数组,包含了函数接收到的所有参数 return args.reduce((accumulator, currentValue) > accumulator currentValue, 0); } // 测试函数 console.log…

查找企业联系电话的几种方法

在商业合作和销售拓展的过程中,找到企业的联系电话是至关重要的一步。无论是精准营销还是客户开发,拥有有效的联系方式可以大大提高成功率。那么,如何快速有效地查找企业联系电话呢?下面介绍几种常见的方法,以及如何借…

摩托车一键启动智能钥匙提高了便捷性和安全性

摩托车一键启动无钥匙进入功能是一种便捷的智能配置 通过PKE智能感应技术实现无钥匙启动: 技术原理与操作 摩托车一键启动无钥匙进入系统采用了RFID无线射频技术和车辆身份编码识别系统,实现了双重射频系统、双重防盗保护。操作简便,只需携…

最后倒计时,SIGMOD 2025全球数据库盛会,你准备好了吗?

一、会议资讯: ACM SIGMOD/PODS International Conference on Management of Data是计算机科学领域中一个顶级的国际学术会议,专注于数据库管理和数据系统的前沿研究。 SIGMOD Conference 每年由 ACM 主办,汇集了全球顶尖的学者、研究人员和…

【使用Java循环输出菱形,空心金字塔】

使用Java循环输出图形的探索之旅 在这篇博客中,我们将探讨如何使用Java中的循环结构来输出各种几何图形,特别是金字塔和菱形。通过这一过程,不仅能够加深对循环的理解,还能提升编程能力。 1. 打印矩形 首先,我们从最…

初级学习:Python实现AI并搭建

随着人工智能(AI)的迅猛发展,越来越多的人希望能够学习如何通过编程实现AI应用。Python,因为其简洁易用,被广泛认为是AI开发的理想编程语言。本文将介绍Python在AI开发中的基础应用,帮助初学者入门并构建自己的AI项目。 为什么选择Python 在了解如何用Python实现AI之前,…

探索 Python 装饰器的终极利器:wrapt 库

文章目录 探索 Python 装饰器的终极利器:wrapt 库背景:装饰器的进化之旅初识 wrapt:它究竟是什么?安装 wrapt:简单几步,轻松上手函数的魔法:wrapt 的简单使用创建简单装饰器装饰器的高级用法&am…

浅谈导热油蒸汽发生器在电子及半导体行业中应用

导热油蒸汽发生器在电子或半导体行业制造过程中有着广泛的应用。为促进温控行业交流发展上海中壹展览等于十二月在上海举办主办首届“TCU China温控展”。以下是一些具体的应用场景和优势: 应用场景 1.清洗与洁净室控制: 半导体生产过程中,生产设备和工…

TikTok代理IP全面使用指南

对于那些希望通过社交媒体打造个人品牌的人来说,TikTok是现在热门的平台,他的流量与曝光不可小觑,相信很多跨境营销会选择他进行多账号营销。问题是,TikTok多账号很容易遇到封禁问题,那么如何解决? 一、什么…

第十三章 RabbitMQ之消息幂等性

目录 一、引言 二、消息幂等解决方案 2.1. 方案一 2.2. 方案二 一、引言 幂等是一个数学概念,用函数表达式来描述是这样的:f(x) f(f(x)) 。在程序开发中,则是指同一个业务,执行一次或多次对业务状态的影响是一致的。有些业务…

3款逆天级Word插件,一键解决文档排版烦恼

在当今快节奏的工作环境中,高效的文档处理能力至关重要,今天电脑天空将为大家介绍三款卓越的Word插件,它们能显著提升你的写作效率,让您的工作成果更加出色。 1. 文档排版利器:小恐龙公文排版助手 小恐龙公文排版助手…

Chromium 如何查找已经定义的mojom函数实现c++

进程通信定义通常都是用.mojom文件或者idl文件格式 以content\common\frame.mojom里面的BeginNavigation函数为例。 一、如何查找BeginNavigation函数定义,在vscode里面直接搜索BeginNavigation,过滤条件 *.idl,*.mojom,*.cc 效果: 这样…

HECTOR:一种新型多模态深度学习模型用于预测子宫内膜癌复发风险|顶刊精析·24-10-12

小罗碎碎念 这篇文章是关于一项名为HECTOR(histopathology-based endometrial cancer tailored outcome risk)的研究,它是一个基于多模态深度学习的预测模型,用于预测子宫内膜癌(EC)的复发风险。 作者角色作…

threejs-加载gltf模型

一、介绍 1.概念 glTF(gl传输格式)是一种开放格式的规范 (open format specification), 用于更高效地传输、加载3D内容。该类文件以JSON(.gltf)格式或二进制(.glb)格式提…

常用的web服务器简述

一.Web服务器介绍 ‌Web服务器是一种运行于互联网上的计算机硬件或软件,用于存储、处理和传输网页和其他网站内容。‌ 它通常运行在服务器上,绑定服务器的IP地址并监听某一个TCP端口,接收来自客户端的请求,然后向客户端发送所请求…

中国地级市生态韧性数据及城市生态韧性数据(2000-2022年)

一测算方式: 参考C刊《管理学刊》楚尔鸣(2023)老师的做法,城市生态韧性主要衡量一个城市在面临生态环境系统压力或突发冲击时,约束污染排放、维护生态环境状态和治理能力提升的综合水平。 参考郭海红和刘新民的研究&a…

JavaScript操作DOM对象

DOM 是 JavaScript 操作网页的接口,全称为“文档对象模型” (Document Object Model)。它的作用是将网页转为一个 JavaScript 对象,从而可以用脚本进行各种操作(比如对元素增删 内容) 节点的类型有七…

基于STM32的智能家居--硬件接线

分配GPIO 1.首先分配串口通讯引脚,该开发板中有三组串口引脚分别分配如图所示。 2.分配SPI。 3.其他为普通GPIO口,B8,B9模拟IIC协议与OLED屏幕进行通讯。

GEE数据集:美国玉米、大豆和冬小麦 QDANN 30m 产量图/数据集

目录 QDANN 30m Yield Map for Corn, Soy, and Winter Wheat in the U.S美国玉米、大豆和冬小麦 QDANN 30m 产量图 简介 数据集预处理 代码 引用 许可 QDANN 30m Yield Map for Corn, Soy, and Winter Wheat in the U.S美国玉米、大豆和冬小麦 QDANN 30m 产量图 简介 …