(亲测有效)spring cloud+Vue微服务项目云服务器部署(宝塔)

news2024/11/24 15:32:56

我的另一篇博客,有兴趣可以看看,部署思路都是一样的。

(亲测有效)SpringBoot+Vue项目云服务器部署(宝塔)_springboot 宝塔部署-CSDN博客

目录

一、准备工作

购买云服务器

登录云服务器

安装宝塔

 二、jdk和数据库

安装环境

 安装Java环境jdk

添加数据库

三、部署前端

修改后台服务所在ip

vue  build

创建站点

四、部署后端

宝塔安装nacos

修改数据库配置

Maven配置子父模块打包

打包上传

运行jar包

方式一:在终端命令运行jar包

方式二:添加Java站点(服务器和面板都开一下端口)

naocos查看已启动服务

五、测试


一、准备工作

购买云服务器

首先前往云服务器平台(阿里云或腾讯云)购买云服务器(可以免费试用),此处我选择的是阿里云服务器,可以免费试用3个月。

然后创建服务器,选择常见linux的发型版本,centos、debian、ubuntu 啥的都行。此处,我使用的是ubutun,地区可以选择离自己现在所处位置近的。

登录云服务器

首先登录阿里云的官网,点击右上角的“控制台”,找到我的资源,实例,再点击“管理资源”,

找到安全组管理,添加端口,

入方向-手动添加,增加4个端口,分别是

  • 80用于nginx
  • 8101、8102、8103、8104用于项目后端
  • 3306用于mysql

添加完记得点击保存,页面上会出现刚刚添加的端口。

这个时候,我们就可以尝试访问我们的服务器了,点击远程登录,通过Workbench远程连接,点击“立即登录”,

输入密码,看到这个界面说明成功连接了。

安装宝塔

使用宝塔可以非常方便地部署前端、后端项目,但是有一个前提条件:你的服务器已经安装了宝塔,或者你的服务器非常干净,什么环境都没有,那就可以安装宝塔。

访问宝塔官方地址:宝塔面板下载,免费全能的服务器运维软件

找到相应的操作系统,点击复制。此处,我的阿里云服务器是Ubuntu的,

想要安装宝塔非常简单,粘贴指令到阿里云的控制台上,直接命令行运行下面的命令,途中有y/n,直接选择y即可。

wget -O install.sh https://download.bt.cn/install/install_lts.sh && sudo bash install.sh ed8484bec

安装完成之后,如下图所示,


 【云服务器】请在安全组放行 33213 端口
 外网面板地址: https://47.93.255.114:33213/b6aa7846
 内网面板地址: https://172.29.117.100:33213/b6aa7846
 username: jl6whtrn
 password: xxxxxxxx

安装成功之后记得将宝塔的账号密码信息存储起来。

云服务器开放宝塔相应端口(本文我的端口是33213),即可使用本地电脑访问宝塔面板(访问地址为上图的外网面板地址),输入账号密码即可进入宝塔面板。

 二、jdk和数据库

安装环境

(1)复制外网面板地址,浏览器打开,就可以进入宝塔面板腾讯云专项网网页,

然后登录到宝塔面板,账号密码是上面命令生成的账号密码。

进入之后,需要绑定宝塔官网账号,如果没有的话,需要注册一下。

(2)找到左侧的软件商店,搜索应用并且安装以下(如果没有用到redis,可以不用安装):

如果需要其他环境自行下载。

一共安装了这么多,

 安装Java环境jdk

(1)要先安装Java环境(根据项目情况选择)

点击宝塔面板左侧的网站 - Java项目 - Java环境管理 - 安装Java环境,

此处我选择的是jdk8,等待安装完成,可以看到,

然后需要在文件中加入以下(注意修改成自己的jdk路径):

(2)打开宝塔面板左侧的终端,输入以下命令打开文件:

vim /etc/profile

或者直接找到文件/etc/profile,进入编辑模式,

在文件中加入以下(注意修改成自己的jdk路径):

# jdk解压后的目录路径
export JAVA_HOME=/www/server/java/jdk1.8.0_371
export JRE_HOME=/www/server/java/jdk1.8.0_371/jre
export CLASSPATH=$:CLASSPATH:$JAVA_HOME/lib/
export PATH=$PATH:$JAVA_HOME/bin

然后按esc,输入:wq保存文件。

(3)然后,我们需要更新一下这个文件/etc/profile,使用下列命令,

source /etc/profile

打开菜单左侧的终端,输入以下命令查看java版本:

java -version

就可以看到jdk的版本了。

添加数据库

(1)点击左侧的数据库,添加数据库。用户名和密码自己设置,

添加完成之后,可以在面板中看到了。

(2)添加后,导入数据库表,

将以sql为后缀的文件上传,此文件即建表语句。

(3)然后点击工具,可查看是否成功建表。

(4)要想查看数据库中表导入数据是否成功,可以通过我们之前安装的这个phpMyAdmin 5.0,

进入宝塔面板左侧的数据库,点击phpMyAdmin,选择面板访问,

 进入之后,会生成下面这个页面,可以可视化数据库表的数据。

三、部署前端

修改后台服务所在ip

打开前端项目,找到request.ts文件,修改后台服务所在ip,

vue  build

如果前端是vue工程,进入到vue文件下,cmd进入命令行,输入npm run build打包。

 打包成功后会出现dist文件,

将dist文件拖到宝塔面板文件里进行上传,此处我的路径是/www/wwwroot。

创建站点

(1)点击左侧的网站添加站点。

其中,需要先点击安装ftp,

安装完成之后,添加ip或域名,端口随便写一个(此处8080不合法,可以随便先写一个端口,后续可以在设置中修改)

(2)修改域名为8080,然后找到网站目录,定位到上面添加的dist文件位置,最后不要忘记保存

此时,我将之前的前端打包文件夹dist放到了这个目录下,并且修改了网站站点的配置。

  (3)然后在浏览器中通过ip可以访问到前端页面了(能看到就行,其他问题往后看)。

四、部署后端

宝塔安装nacos

(1)登录宝塔面板,在宝塔面板的左侧有个软件商店,搜索“Nacos”点击右侧的“安装”,点击右上角“立即安装”即可安装。

(2) 在宝塔面板的左侧的安全中,为nacos和后端微服务添加端口。nacos默认端口是8848。

(3)打开已经安装好的nacos,在设置里选择启动nacos服务, 

等待启动完成,

(4)本地浏览器打开nacos面板,

OK,说明nacos启动成功了。

修改数据库配置

Maven配置子父模块打包

对于微服务项目,我们通常是使用 Maven 的子父模块功能进行管理的。需要部署项目时,不用针对每个子服务单独执行mvn package 命令进行打包,而是可以一键打包所有服务。

想要实现这个功能,需要给子父模块的依赖文件(pom.xml)进行一些配置,主要包括:

1)父模块配置

在父模块的 pom.xml 文件中引l入 spring-boot-maven-plugin 即可,注意一定不要配置 configuration 和 repackage!

示例代码如下:

 <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>${spring-boot.version}</version>
<!--                <configuration>-->
<!--                    <mainClass>com.water.ojbackendmicroservice.OjApplication</mainClass>-->
<!--                    <skip>true</skip>-->
<!--                </configuration>-->
<!--                <executions>-->
<!--                    <execution>-->
<!--                        <id>repackage</id>-->
<!--                        <goals>-->
<!--                            <goal>repackage</goal>-->
<!--                        </goals>-->
<!--                    </execution>-->
<!--                </executions>-->
            </plugin>
        </plugins>
    </build>

2)子模块配置

修改所有需要启动 Spring Boot 的服务(用户服务、题目服务、判题服务、网关服务)的子模块 pom.xml 文件。

主要是增加 executions 配置,使用 spring-boot-maven-plugin 的 repackage 命令来构建子模块,从而自动在构建时将公共模块的依赖打入jar 包。

示例代码如下:

<build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <id>repackage</id>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

打包上传

然后对整个大项目打包,就可以直接打包所有的子模块了。

打包完成之后,会在每个子模块的target文件夹下看到各自的jar包。把所有的子模块的jar包上传到服务器的宝塔面板的文件下,此处我的路径是/www/wwwroot。

运行jar包

方式一:在终端命令运行jar包

(1)打开服务器终端,输入以下命令跳转文件。如:cd /www/wwwroot

cd jar包存放位置

临时运行jar包(输入java -jar 后,再输入jar包的前面几个字母然后按tab键可以补全名称):

java -jar jar包

启动之后,

然后,在浏览器进入地址,就可以看到后端正常启动了。

(2)如果想要服务器一直运行jar包(关闭页面后也会运行),输入以下命令:

nohup java -jar jar包 &

方式二:添加Java站点(服务器和面板都开一下端口)

(1)直接添加这个 java 项目的端口,

  • 项目jar路径:选择上传的jar包路径位置
  • 项目端口:要和自己的项目端口一样
  • 项目jdk:已安装的jdk
  • 项目执行命令:是自动生成的
  • 开机启动:选择

类似下面这种流程,

(2)此处我选择第二种方法,分别对gateway服务和3个微服务进行启动。

naocos查看已启动服务

打开nacos管理面板进行查看,就可以看到启动的服务了。

OK,nacos这部分算是成功了。

五、测试

(1)我在站点里设置的后端端口是8101、8102、8103、8104,在浏览器中输入后端的某个路径,就可以看到后端可以正常访问了,

(2)前端也可以了,我在站点里设置的前端端口是8080,因此ip+8080访问,

打开服务器对应网站(服务器ip地址+域名号),刷新即可,

可以看到,后端已经从数据库中查询到了数据,并返回给前端了。

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

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

相关文章

项目技巧二

java中Date和mysql数据库datetime数据类型 数据库中的 datetime 类型&#xff1a; 大多数关系型数据库&#xff08;如 MySQL, SQL Server, PostgreSQL 等&#xff09;都提供了 datetime 类型&#xff0c;用于存储日期和时间信息。这些数据库中的 datetime 类型通常遵循 ISO 86…

金九银十跳槽季,最新自动化测试面试题合集

前言 Hello,大家好。金九银十也不远了&#xff0c;有的人盼望升职加薪&#xff0c;有的人立了新的Flag&#xff0c;有跳槽计划的该提上日程了。为解大伙的燃眉之急&#xff0c;今天分享自动化面试题预热一波&#xff0c;欢迎留言区补充评论&#xff01; 一、请描述一下自动化测…

sqli-labs靶场通关攻略(四十一到五十关)

sqli-labs-master靶场第四十一关 一&#xff0c;查看数据库 ?id-1 union select 1,2,database()-- 二&#xff0c;查看表名 ?id-1 union select 1,group_concat(table_name),3 from information_schema.tables where table_schemadatabase()-- 三&#xff0c;查看users表中…

python学习之路 - python对mysql的数据操作

目录 一、python对mysql的数据操作1、前期准备2、连接mysql3、创建表5、插入表4、查询表 一、python对mysql的数据操作 1、前期准备 使用python对mysql进行相关操作前&#xff0c;需要安装pymysql。执行pip install pymysql命令即可如果具体不知道如何操作&#xff0c;可以查…

导入pyBigWig包

今天复现论文时&#xff0c;看到了一种叫做bigwig格式的数据&#xff0c;创建和访问该格式文件需要用到pybigwig包&#xff0c;在此过程中遇到了一些问题&#xff0c;记录一下。 介绍 pybigwig的使用依赖于两个C库&#xff0c;所谓C库就是C语言编写的python库。 正如在pypi官…

聚类算法-DBSCAN

文章目录 一、DBSCAN介绍1.含义2.DBSCAN 的核心概念3.DBSCAN算法参数 二、代码实现1.数据预处理2.DBSCAN聚类3.计算轮廓系数4.全部代码 三、总结 一、DBSCAN介绍 1.含义 DBSCAN&#xff08;Density-Based Spatial Clustering of Applications with Noise&#xff09;是一种基…

llama-cpp-python编译失败,解决方案安装wheel文件

https://abetlen.github.io/llama-cpp-python/whl/cu121/llama-cpp-python/编译失败&#xff1a; 解决方案&#xff1a;使用轮子镜像

Clion/Vs中wcout输出中文不显示的解决办法

本来要写个输出所有窗口的代码&#xff0c;但是结果文字一直不输出&#xff0c;又试了试发现只是汉字不输出&#xff1a; #include <windows.h> #include <iostream> #include <vector> #include <string>std::vector<std::wstring> windowTitl…

数据结构(6.4_4)——Floyd算法

Floyd算法 第一步&#xff1a;建立两个二维数组&#xff0c;一个用来存放所有顶点&#xff0c;一个用来存放顶点之间的中转点 第二步&#xff1a;循环遍历A矩阵&#xff0c;若,则&#xff0c;&#xff1b;否则 和保持原值&#xff0c;循环完所有i&#xff0c;j后更新数组并且…

材料表面缺陷检测系统源码分享 # [一条龙教学YOLOV8标注好的数据集一键训练_70+全套改进创新点发刊_Web前端展示]

材料表面缺陷检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer Vis…

【rk3588】环境搭建及系统编译

开发板&#xff1a;ROC-RK3588S-PC 官方链接&#xff1a;Welcome to ROC-RK3588S-PC Manual — Firefly Wiki (t-firefly.com) 串口调试配置 一、产品介绍 — Firefly Wiki (t-firefly.com)&#xff0c;可以按照官方链接的说明在个人PC上使用串口。这个串口会输出rk3588的日…

字典查找对应输入的字符

一、将文件放入到数据库 #include<stdio.h> #include<sqlite3.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <string.h> #include <unistd.h> int main(int agrc,char *agrv[]) {FILE *fp;fp fope…

详细介绍校园网络拓扑结构设计图

目录 需求分析 网络架构设计 拓扑图设计 安全策略 出口设计 总结 校园网络拓扑结构设计是一种对学校内计算机、网络设备和软件进行集成应用的系统化设计&#xff0c;旨在为师生提供一个高效、稳定、安全的网络平台&#xff0c;以支持教学、科研和管理的信息化需求。一个优…

RKNPU2从入门到实践 ---- 【8】借助 RKNN Toolkit lite2 在RK3588开发板上部署RKNN模型

前言 作者使用的平台为Ubuntu20.04虚拟系统&#xff0c;开发板为瑞芯微RK3588&#xff0c;开发板上的系统为Ubuntu22.04系统。 一、任务 完成RKNN模型的部署&#xff0c;RKNN模型的部署是将RKNN模型放到开发板上&#xff0c;应用程序可以加载RKNN模型&#xff0c;从而在嵌入式…

进阶SpringBoot之 Shiro(1)快速开始

Shiro 是一个 Java 的安全&#xff08;权限&#xff09;框架&#xff0c;它可以在 JavaSE、JavaEE 环境下使用 Shiro 可以实现认证、授权、加密、会话管理、Web 集成、缓存等 Shiro 官网 Shiro 中文文档 GitHub 下载 Shiro 下载源码&#xff0c;samples -> quickstart …

Linux-全网备份实战案例rsync邮件发送

项目准备 服务端&#xff1a;backup&#xff1a;172.16.1.41 客户端1&#xff1a;nfs:172.16.1.31 客户端2&#xff1a; web01:172.16.1.7 1.1 服务端backup-rsync配置文件 [rootbackup ~]# cat /etc/rsyncd.conf #created by linux 2024-8-29 ###########rsyncd.conf star…

进程和线程(操作系统八股文part2)

一个操作系统的进程和线程部分的笔记&#xff0c;大部分来源于&#xff1a;小林coding和Javaguide&#xff0c;以及操作系统黑书。 进程和线程 什么是进程 运行中的程序叫进程**&#xff08;Process&#xff09;**。 进程是资源分配的最小单位&#xff0c;线程是执行的最小…

【逐行注释】MATLAB下的UKF(无迹卡尔曼滤波),带丰富的中文注释,可直接复制到MATLAB上运行,无需下载

文章目录 程序组成部分完整代码运行结果主要模块解读:运动模型绘图部分误差统计特性输出程序组成部分 由模型初始化、运动模型、UKF主体部分、绘图代码和输出部分组成: 完整代码 将下列代码复制粘贴到MATLAB里面,即可运行: % 三维状态量的UKF例程 % 作者联系方式:微信…

学苑教育杂志社学苑教育编辑部学苑教育杂志2024年第23期目录

专题研究 “三全六为”教育教学理念的实践运用 果艳青; 4-6 教育管理 班主任班级管理工作中进行小组合作的优化策略 肖堂花; 7-9 课堂教学 以“创新”为支点&#xff0c;构建小学数学活力课堂 马绪如; 10-12 案例教学法在初中道德与法治教学中的应用 何瑞娟; 1…

js实现队列

目录 一、什么是JavaScript队列数据结构二、创建一个JavaScript队列数据结构三、封装队列方法①向队列添加元素②检查队列是否为空③获取队列的长度④从队列移除元素⑤查看队列头元素⑥清空队列⑦创建toString方法 四、使用Queue类 一、什么是JavaScript队列数据结构 在上一篇…