Linux搭建服务器环境,挂载SpringBoot+VUE项目

本地环境
Ubuntu20.04
服务器环境
CentOS7.6

购买服务器

以阿里云轻量服务器(适合初学者)为例,自行选择规格进行购买

购买完成后,获取服务器公网IP,同时重置密码,设置服务器密码

在这里插入图片描述
在这里插入图片描述

配置防火墙

点击实例ID,点击防火墙>添加规则

在这里插入图片描述
在这里插入图片描述

添加80、443(HTTPS)、3306(MYSQL)、8088(后端端口)、22(远程连接端口)

远程连接服务器

Windows系统下通常使用Xshell进行连接,Linux可以直接使用ssh,连接更便捷

(1)生成ssh密钥

ssh-keygen -t rsa

在这里插入图片描述

生成的ssh密钥存储在用户目录下的.ssh中,其中id_rsa 文件是私有密钥,id_rsa.pub 是公开密钥,可以通过cat ~/.ssh/id_rsa.pub查看

(2)远程连接服务器

ssh -p 22 root@ip	# 22为端口号,root为服务器用户账号,ip为服务器公网IP地址,如112.126.71.196

注:如果已经远程连接过服务器后,重新配置了服务器(例如重置系统等),会报错WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!

此报错是由于远程的主机的公钥发生了变化导致的。
ssh服务是通过公钥和私钥来进行连接的,它会把每个曾经访问过计算机或服务器的公钥(public key),记录在~/.ssh/known_hosts 中,当下次访问曾经访问过的计算机或服务器时,ssh就会核对公钥,如果和上次记录的不同,OpenSSH会发出警告。

解决方案

# 清除连接记录
ssh-keygen -R ip	# ip为连接过的服务器ip

(3)将密钥添加到服务器中,实现免密快捷登录

当我们频繁需要使用SSH连接到同一个服务器时,通过配置免密登录可以节省时间并提升工作效率

# 将密钥复制到服务器中
ssh-copy-id root@ip	# root为服务器用户账号,ip为服务器公网IP地址,如112.126.71.196

# 免密登录
ssh root@ip

配置JDK环境

Windows下可以通过xftp传输文件,Linux直接使用sftp更加方便

xftp连接服务器

xftp root@112.126.71.196

xftp操作:服务器端使用linux命令操作即可,本机操作需在命令前额外+l,例如

# 进入服务器的admin文件夹,创建jdk文件夹
cd /home
mkdir server && cd server
# 进入本地下载文件夹
lcd Downloads
# 将本地jdk安装包上传到服务器中,上传为put,下载为get
put jdk1.8.0.tar.gz /home/server
# 检查压缩包是否存在
ls

将压缩包上传完成后,根据Linux配置JDK环境进行操作即可

安装nginx

sudo yum -y install nginx

安装Docker

1.卸载旧版本依赖

yum remove docker \
    docker-client \
    docker-client-latest \
    docker-common \
    docker-latest \
    docker-latest-logrotate \
    docker-logrotate \
    docker-engine

2.设置仓库

sudo yum install -y yum-utils \
    device-mapper-persistent-data \
    lvm2

3.设置稳定的阿里云仓库

sudo yum-config-manager \
    --add-repo \
    http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

4.安装最新版Docker Engine-Community和containerd

sudo yum install docker-ce docker-ce-cli containerd.io

5.启动docker

# 启动docker
systemctl start docker
# 验证安装是否成功
docker version
# 将用户加入Docker用户组
sudo usermod -aG docker $USER
# 设置开机自启
systemctl enable docker

6.阿里云镜像加速

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'

# 输入如下
{
  "registry-mirrors":["https://3n4m4jry.mirror.aliyuncs.com"]
}
EOF

# 重新加载并重启docker
sudo systemctl daemon-reload
sudo systemctl restart docker

Docker命令

# 查看docker镜像
docker images
# 查看docker进程
docker ps

Docker安装Mysql

安装MySQL

docker pull mysql:8.0

在这里插入图片描述

启动Mysql,设置初始密码

# --name 容器名称
# -p 3308:3306 物理机端口:容器内部端口
# -e 运行参数 初始化 root 用户密码
# -d 后台运行 mysql:8.0 镜像名称加标签
docker run -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=初始密码 -d mysql:8.0

进入容器

# 查看正在运行的容器,找到mysql的CONTAINER ID
docker ps
# 进入容器
docker exec -it 4569ee6814fd /bin/bash	# 4569ee6814fd为CONTAINER ID

登录mysql,登录成功即代表容器创建成功

mysql -uroot -p初始密码

使用Mysql可视化工具即可连接服务器Mysql(以navicat为例),若出现连接失败,检查服务器防火墙/工作组是否开启对应接口

在这里插入图片描述

复制数据库(可选)

打开localhost,选中源数据库的所有表,拖动到server的demo(目标数据库,需新建)上,选择复制数据和结构,打开数据传输界面

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

关闭docker的Mysql容器

docker stop 容器id

修改项目配置

自行根据实际情况将SpringBoot项目的路径、端口、账号密码、ip等信息进行修改(localhost改为公网IP地址)

在这里插入图片描述

添加Plugin

在pom.xml的build>plugins下确保添加了如下plugin,用户构建项目时生成jar

<plugin>
	<groupId>org.apache.maven.plugins</groupId>
	<artifactId>maven-jar-plugin</artifactId>
	<version>3.2.0</version>
</plugin>

构建、打包本地后端项目

cd maven项目目录
mvn clean package -DskipTests

在这里插入图片描述

构建完成后在该目录下target文件夹下会生成jar

在这里插入图片描述

使用java -jar可执行jar包

sftp root@112.126.71.196	# sftp连接服务器
lcd code/shixun/springboot/shixun/target
# 将jar移动到服务器
put shixun-0.0.1-SNAPSHOT.jar /home/server
# 执行jar,启动SpringBoot(在服务器终端启动,而不是sftp)
chmod +x shixun-0.0.1-SNAPSHOT.jar
java -jar shixun-0.0.1-SNAPSHOT.jar

在这里插入图片描述

静默后台启动、关闭后端项目

此时项目的启动在终端中,关闭终端服务器停止运行,开启jar静默后台启动

# 静默启动
nohup java -jar shixun-0.0.1-SNAPSHOT.jar &
# 查看日志
cat nohup.out

# 查看运行进程
ps -ef | grep java
# 关闭进程
kill -9 进程号

# 构建、打包本地前端项目

cd code/shixun/springboot/shixun/vue
# 构建vue项目,生成dist文件
npm run build

在这里插入图片描述


本地验证打包文件有效性(自选)

安装anywhere前端静态资源服务器插件

npm install anywhere -g
cd dist
# 将前端项目挂载到本地8080端口运行(确保端口不冲突)
anywhere -p 8080

将给定的url输入到浏览器中即可访问(注:需要同时启动后端服务)


将dist上传到服务器

sftp root@112.126.71.196
lcd /home/insight/code/shixun/springboot/shixun/vue
# 将dist目录上传服务器
put -r dist /home/server
# 启动nginx
cd /usr/sbin
./nginx
# 查看运行进程
ps -ef | grep nginx
# 配置端口信息
cd /etc/nginx
vim nginx.conf

新增如下信息:

在这里插入图片描述

# 重启nginx
cd /usr/sbin
./nginx -s reload

配置完成,浏览器启动成功

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

(八)、基于 LangChain 实现大模型应用程序开发 | 基于知识库的个性化问答 (检索 Retrieval)

检索增强生成&#xff08;RAG&#xff09;的整体工作流程如下&#xff1a; 在构建检索增强生成 (RAG) 系统时&#xff0c;信息检索是核心环节。检索是指根据用户的问题去向量数据库中搜索与问题相关的文档内容&#xff0c;当我们访问和查询向量数据库时可能会运用到如下几种技术…

mybatisPlus的简单使用

封装实体类 编写Mapper service层 controller层

05_SHELL编程之文本处理工具SED

typora-root-url: pictures课程目标 掌握sed的基本语法结构 熟悉sed常用的命令&#xff0c;如打印p&#xff0c;删除d&#xff0c;插入i等 Windows&#xff1a;​ Linux&#xff1a; vim vi gedit nano emacs 一、sed介绍 1. sed的工作流程 首先sed把当前正在处理的行保存…

非遗拓鱼丨以传统文化助力守护美丽长江

长江生物多样性极为丰富&#xff0c;是中华民族赖以生存的生命之源&#xff0c;值得人类更多的关注与保护。为传播非遗文化、宣传长江生态保护&#xff0c;积极响应野生动物保护宣传的号召&#xff0c;以非遗手工助力守护长江&#xff0c;11月18日&#xff0c;在重庆市陆海国际…

buildadmin+tp8表格操作(6)表格行中添加详情按钮并弹出对话框

在表格行中添加按钮&#xff0c; 是个基本操作 下面来看一下&#xff0c;dialog的 对话框中是怎么拿到数据的 有了这一行&#xff0c; 那么 它的子组件中&#xff0c; 都可以获取到这个对象&#xff0c;所以&#xff0c; 有弹出框的 Info 组件&#xff0c;也可以获取到 我们…

本地部署 EmotiVoice易魔声 多音色提示控制TTS

本地部署 EmotiVoice易魔声 多音色提示控制TTS EmotiVoice易魔声 介绍ChatGLM3 Github 地址部署 EmotiVoice准备模型文件准备预训练模型推理 EmotiVoice易魔声 介绍 EmotiVoice是一个强大的开源TTS引擎&#xff0c;支持中英文双语&#xff0c;包含2000多种不同的音色&#xff…

我们为什么要做亚马逊测评?

提高页面权重 一般页面有三个部分构成 标题&#xff0c;关键词&#xff0c;描述 review 可以很好地充当一个描述的角色&#xff0c;为页面提升权重 我们会发现有些评论全部是视频&#xff0c;但是却可以推他的关键词到他的首页&#xff0c;因为视频带来的权重是最高的&…

KylinOSv10修改ulimit值

问题 ulimit 值过小&#xff0c;可能导致压力测试遇到瓶颈&#xff0c;比如通过nginx建立tcp长链接时&#xff0c;链接数量受限。需要修改ulimit值&#xff0c;Linux默认为1024。 解决 使用root或sudo权限&#xff0c;编辑文件/etc/security/limits.conf&#xff0c;新增以下…

【2023.11】香色闺阁最新书源!这个月新写了6条,条条高质!

写源背景 平时用香色闺阁比较多&#xff0c;以前的很多源都失效了&#xff0c;导入几百几千条&#xff0c;在换源时也常常出现耗时长、还没几条可用源的情况。 基于此&#xff0c;就自己去学习了下怎样写源。目前初步有了点“成绩” &#xff0c;那也免费分享给需要的伙伴们体…

重要功能丨支持1688API接口接入一键跨境铺货及采购,解决跨境卖家货源烦恼!

在跨境电商运营中&#xff0c;不少卖家都会优先选择1688平台产品作为跨境店铺货源。 阿里巴巴中国站获得1688商品详情 API 返回值说明 item_get-获得1688商品详情 1688.item_get 公共参数 请求地址: 申请调用KEY测试 名称类型必须描述keyString是调用key&#xff08;必须以…

详解“协方差”与“相关系数”

引言 PCA的目标对象是矩阵&#xff0c;例如&#xff0c;有m个样本&#xff0c;每个样本有n个特征&#xff0c;那么就可以构造成一个样本矩阵&#xff0c;并转换成矩阵的形式。 PCA的最终目的是减少特征的个数&#xff0c;去掉那些不重要的特征&#xff0c;也就是减小矩阵列向量…

基于单片机双路压力监测报警系统

**单片机设计介绍&#xff0c; 【毕设课设】基于单片机双路压力监测报警系统 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于单片机双路压力监测报警系统是一个复杂的系统&#xff0c;它涉及到单片机、压力传感器、报警器等多…

Docker网络详细说明

Docker网络 docker不启动&#xff0c;默认网络情况 ipconfig----------ens33、lo、virbr0 在CentOS7的安装过程中如果有选择相关虚拟化的的服务安装系统后&#xff0c;启动网卡时会发现有一个以网桥连接的私网地址的virbr0网卡(virbr0网卡&#xff1a;它还有一个固定的默认I…

代码随想录算法训练营第五十九天丨 单调栈02

503.下一个更大元素II 思路 做本题之前建议先做739. 每日温度 (opens new window)和 496.下一个更大元素 I (opens new window)。 这道题和739. 每日温度 (opens new window)也几乎如出一辙。 不过&#xff0c;本题要循环数组了。 关于单调栈的讲解我在题解739. 每日温度 …

MAX/MSP SDK学习01:Object的基本构成、创建销毁行为函数的定义、属性的赋值、以及相关注意事项

Object的基本构成、创建&销毁&行为函数的定义、属性的赋值、以及相关注意事项。 #include "ext.h" // standard Max include, always required #include "ext_obex.h" // required for new style Max object// object struct&#xff0c;定义属…

每日一题 53. 最大子数组和(中等,数组)

很经典的数组题了 class Solution:def maxSubArray(self, nums: List[int]) -> int:ans -inft 0for i in nums:t ians max(ans, t)if t < 0:t 0return ans

【论文阅读】SPARK:针对视觉跟踪的空间感知在线增量攻击

SPARK: Spatial-Aware Online Incremental Attack Against Visual Tracking introduction 在本文中&#xff0c;我们确定了视觉跟踪对抗性攻击的一个新任务&#xff1a;在线生成难以察觉的扰动&#xff0c;误导跟踪器沿着不正确的&#xff08;无目标攻击&#xff0c;UA&#x…

java多线程中的Fork和Join

文章目录 1. 简介2. 使用 1. 简介 Fork/Join是JDK 1.7中加入的新的线程池的实现&#xff0c;它体现的使用分治的思想&#xff0c;适用于能够进行任务拆分的cpu密集型任务。所谓的任务拆分&#xff0c;是将一个大任务拆分为算法上相同的小任务&#xff0c;直到不能拆分可以直接…

蔡崇信看好的菜鸟,“基本面”究竟如何?

今年5月,阿里巴巴集团曾公布云智能集团将完全分拆独立走向上市&#xff0c;菜鸟、盒马启动上市计划&#xff0c;国际数字商业集团启动外部融资。但随着16日阿里巴巴集团最新财报的发布&#xff0c;及宣布终止分拆阿里云、盒马IPO搁置&#xff0c;现在&#xff0c;仅有菜鸟在按原…