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

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

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CleanMyMac X2024免费测试版好不好用?值不值得下载

如果你是一位Mac用户&#xff0c;你可能会遇到一些问题&#xff0c;比如Mac运行缓慢、磁盘空间不足、应用程序难以管理等。这些问题会影响你的Mac的性能和体验&#xff0c;让你感到沮丧和无奈。那么&#xff0c;有没有一款软件可以帮助你解决这些问题呢&#xff1f;答案是肯定的…

【Linux】:体系结构与进程概念

朋友们、伙计们&#xff0c;我们又见面了&#xff0c;本期来给大家解读一下有关Linux体系结构和进程的知识点&#xff0c;如果看完之后对你有一定的启发&#xff0c;那么请留下你的三连&#xff0c;祝大家心想事成&#xff01; C 语 言 专 栏&#xff1a;C语言&#xff1a;从入…

STM32中的加速度计驱动程序与姿态控制实现

加速度计广泛应用于姿态控制、运动跟踪和导航等领域。本文将介绍如何在STM32微控制器中实现加速度计的驱动程序&#xff0c;并利用测得的加速度数据实现姿态控制功能。 一、STM32与加速度计概述 1. STM32微控制器 STM32是STMicroelectronics推出的一系列32位微控制器&#…

汽车制造领域中的3D测量仪,您了解多少?

在汽车制造领域中&#xff0c;3D测量仪可以满足各种不同的测量需求&#xff0c;被广泛应用于各种零部件和整车的测量、检测及质量控制&#xff0c;为汽车制造的质量控制和精度提高提供了重要的保障。 在汽车设计阶段&#xff0c;3D测量仪可以精确测量车身、引擎盖、车门等零部…

Redis常用的八种场景

作为一名 Java后端人员&#xff0c;对 Redis肯定并不陌生&#xff0c;Redis作为一种内存数据库&#xff0c;以其速度之快在编程的舞台上纵横多年&#xff0c;那么&#xff0c;Redis到底适合哪些业务场景&#xff1f;今天就来聊一聊。 1. 缓存/数据库 缓存&#xff08;Cache&am…

JS:给数字添加千分位符(每3位数用逗号隔开)

背景 如果一串数字的长度太长&#xff0c;就不方便阅读&#xff0c;因此可以采用分隔符对数字进行分割本文的分割规则是&#xff1a; 如果数字的长度大于等于5则进行分割&#xff0c;每3位数用逗号分割开 解决 数字可以分为&#xff1a;number类型的数字和字符串类型的数字&…

ATTCK 十大免费 工具和资源

01 eBook: Getting Started with ATT&CK 这本免费电子书将有关威胁情报、检测和分析、对手模拟和红队以及评估和工程的博客文章中的内容汇集到一个方便的软件包中。 02 CALDERA CALDERA是一个网络安全平台&#xff0c;旨在轻松自动化对手仿真&#xff0c;协助手动红队并自…

作为电子信息工程的学生,学完stm32后,是应该学fpga还是Linux?

作为电子信息工程的学生&#xff0c;学完stm32后&#xff0c;是应该学fpga还是Linux? 我自己也是电子信息工程专业出身&#xff0c;FPGA和Linux都是我们大三的专业课&#xff0c;都学过基础也做了基础 的项目&#xff0c;我自己的选择是Linux。最近很多小伙伴找我&#xff0c…

C#中.NET 7.0 Windows窗体应用通过EF访问已有数据库并实现追加、删除、修改、插入记录

目录 一、前言 1.Database.ExecuteSqlCommand 方法不被EF7.0支持 2.SET IDENTITY_INSERT Blog {ON,OFF}不起作用 3.主键和标识列分离&#xff0c;成功实现插入与修改 二、新建本文涉及的项目 三、程序设计 1.Form1.cs源码 2.Form1.cs[设计] 四、生成和测试 1.原始表 …

外卖小程序系统:数字化时代餐饮业的技术奇迹

在当今数字化时代&#xff0c;外卖小程序系统正以其强大的技术背后支持&#xff0c;成为餐饮业务的一项奇迹。这个系统不仅提供了便捷的点餐体验&#xff0c;更通过先进的技术手段&#xff0c;实现了高效订单处理、智能推荐以及实时配送追踪。下面&#xff0c;我们将深入探讨外…

HarmonyOS ArkTS语言,运行Hello World(二)

一、认识DevEco Studio界面 进入IDE后&#xff0c;我们首先了解一下基础的界面。整个IDE的界面大致上可以分为四个部分&#xff0c;分别是代码编辑区、通知栏、工程目录区以及预览区。 代码编辑区 1、中间的是代码编辑区&#xff0c;你可以在这里修改你的代码&#xff0c;以…

22年+21年 计算机能力挑战赛初赛C语言程序题 题解

22年 第14题&#xff1a;答案&#xff1a;33 #include<stdio.h> int x1; int f(int a) { static int x2;int n0;if(a%2){ static int x3;nx; }else { static int x5;nx; }return nx;} void main() { int sumx,i;for(i0;i<4;i) sumf(i); printf(&qu…