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

news2024/11/15 10:29:23

本地环境
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.coloradmin.cn/o/1230766.html

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

相关文章

极智嘉(Geek+)官宣重磅合作伙伴,再度赋能仓储自动化解决方案落地

近日&#xff0c;全球仓储机器人引领者极智嘉(Geek)再度官宣重磅合作伙伴&#xff0c;其与全球先进的物流自动化和软件公司FORTNA达成了战略合作。 当前&#xff0c;电商领域发展迅速&#xff0c;高效、可拓展的订单履行方案需求急剧增长。基于这一形势&#xff0c;极智嘉与FO…

OpenCV [c++](图像处理基础示例小程序汇总)

OpenCV [c++](图像处理基础示例小程序汇总) 推荐 原创 NCUTer 2023-04-04 14:18:49 文章标签 Image 图像处理 文章分类 计算机视觉 人工智能 在51CTO的第一篇博文 阅读数1467 一、图像读取与显示 #include<opencv2/opencv.hpp> #include<iostream>using…

git问题: git@10.18.*.*: Permission denied (publickey,password)

遇到的问题&#xff1a; openSSH版本太高&#xff0c;openssh高版本默认禁止ssh-rsa加密算法&#xff0c;直接换ed25519 执行以下命令&#xff1a; 在.ssh目录下执行&#xff1a;ssh-keygen -t ed25519 -C “youremail.com” ssh-add ~/.ssh/id_ed25519 将id_ed25519.pub添加…

文章解读与仿真程序复现思路——电力自动化设备EI\CSCD\北大核心《考虑多重不确定性和潜在博弈的楼宇群电能优化调度策略》

这个标题涉及到楼宇群电能的优化调度策略&#xff0c;并强调了两个重要的方面&#xff1a;多重不确定性和潜在博弈。 楼宇群电能优化调度策略&#xff1a; 这指的是在一个涉及多个楼宇&#xff08;建筑物&#xff09;的群体中&#xff0c;对电能的使用进行优化调度的策略。这可…

深度学习(小土堆)

self代表当前类的实例&#xff0c;并用于访问实例的属性和方法,主要方便后面访问属性或者方法。 启动事件文件夹 进行上一步需要在pycharm中设置当打开Terminal终端时&#xff0c;自动进入虚拟环境 防止与别人冲突可以修改端口号 将图像的数据类型转为numpy trans…

微信小程序配置企业微信的在线客服

配置企业微信后台 代码实现 <button tap"openCustomerServiceChat">打开企业微信客服</button>methods: {openCustomerServiceChat(){wx.openCustomerServiceChat({extInfo: {url: 你刚才的客服地址},corpId: 企业微信的id,showMessageCard: true,});} …

【小黑嵌入式系统第九课】PSoC 5LP第一个实验——LED、字符型LCD显示实验

上一课&#xff1a; 【小黑嵌入式系统第八课】初识PSoC Creator™开发——关于PSoC Creator&下载、创建项目、单片机中的hello world&#xff08;点亮一个led) 文章目录 1 实验目的2 实验要求3 实验设备4 实验原理1. 基于 PWM 原理的 LED 亮度控制2. 时间的计量3. 按键抖动…

FPGA_IIC代码-正点原子 野火 小梅哥 特权同学对比写法(2)

FPGA_IIC代码-正点原子 野火 小梅哥 特权同学对比写法&#xff08;2&#xff09; 工程目的I2C 单字节写操作I2C 随机读操作EEPROM 字节读写整体框图模块功能简介I2C 驱动模块模块框图跨时钟域处理状态转移图 波形分析单字节写操作局部波形图&#xff08;一&#xff09;单字节写…

IP地址的分包与组包:网络通信的关键技术解析

在计算机网络中&#xff0c;IP地址的分包与组包是网络通信过程中关键的技术环节&#xff0c;分别涉及将数据拆分为适当大小的包以及在接收端重新组装这些包的过程。这两个过程对于确保高效、可靠的数据传输至关重要。以下将深入探讨IP地址的分包与组包的概念、原理以及在网络通…

进程管理(三)

生产者—消费者问题及初步解决方案 放了数据后,有通知消费者的义务。 空缓冲区、满缓冲区作为资源,设计为信号量 关于生产者—消费者初步解决方案的反思 秘诀:资源信号量wait在前,互斥信号量wait在后 关于生产者—消费者初步解决方案的改进

Linux常见命令手册

目录 文件命令 文件和目录命令 文件的权限命令 文件搜索命令 进程命令 查看进程命令 关闭进程命令 用户和群组命令 网络命令 firewall-cmd 网络应用命令 高级网络命令 网络测试命令 网络安全命令 网络配置命令 软件管理命令 系统信息命令 vi编辑器 关机命令…

2023年中国位置服务(LBS)产业链及市场规模分析[图]

卫星导航系统的高技术、高成本、高效益属性使其成为国家经济实力与科技实力的标志之一。卫星导航系统由空间段、地面段和用户段三个部分组成&#xff0c;已广泛用于交通运输、农林牧渔、航空航海等领域&#xff0c;服务载体包括手机、汽车、无人机、导弹等&#xff0c;对人们生…

Dubbo快速实践

文章目录 架构相关概念集群和分布式架构演进 Dubbo概述Dubbo快速入门前置准备配置服务接口配置Provider配置Consumer Dubbo基本使用总结 本文参考https://www.bilibili.com/video/BV1VE411q7dX 架构相关概念 集群和分布式 集群&#xff1a;很多“人”一起 &#xff0c;干一样…

数据结构与算法-生成树与最小生成树

生成树与最小生成树 &#x1f388;1.生成树与最小生成树&#x1f52d;1.1生成树与最小生成树的概念&#x1f52d;1.2最小生成树的生成准则&#x1f52d;1.3两种最小生成树算法&#x1f3c6;1.3.1Kruskal算法&#x1f3c6;1.3.2Prim算法 &#x1f388;2.有向无环图及其应用&…

unity 打包exe设置分辨率

unity在2019以上版本不支持在打开的时候弹出分辨率设置的窗口&#xff0c;但是因为有些需求需要可以设置分辨率进行操作&#xff0c;我在查了好多办法后找到了解决方案&#xff0c;废话不多说开始干货。 1.先去百度云上下载这个文件 链接&#xff1a;https://pan.baidu.com/s/1…

MATLAB常用绘图函数的使用

文章目录 绘制一图一线绘制一图多线用法一&#xff1a;plot用法二&#xff1a;hold on 绘制一图多图其他形式的坐标图分段函数绘制方法一&#xff1a;分段写函数的定义域值域方法二&#xff1a;判断定义域方法三&#xff1a;if else 判断 横纵坐标范围设置标题、轴标签、图例、…

如何去云服务器申请环境跑深度学习模型

我的研究方向是显著性目标检测&#xff0c;虽然对比目标检测来说&#xff0c;数据集和模型的尺寸已经降低很多了&#xff0c;然后我们实验室也有一台公用服务器&#xff0c;但是那台服务器好多人使用&#xff0c;每个人能分配到的容量就很小&#xff0c;而且有时候会宕机&#…

测试和验证有什么区别,怎么划分测试集和验证集

测试集和验证集是在机器学习中用于评估模型性能的两个不同的数据集。它们有不同的目的和使用方式。 验证集&#xff08;Validation Set&#xff09;&#xff1a; 目的&#xff1a; 用于调整模型的超参数&#xff08;例如&#xff0c;学习率、正则化参数等&#xff09;和进行模型…

软件工程第十一周

面向对象 面向对象编程&#xff08;Object-Oriented Programming, OOP&#xff09;不仅仅是一种程序设计方法&#xff0c;它更是一种深刻的软件工程开发思想。这种思想的核心在于通过抽象和封装来模拟现实世界中的对象和概念&#xff0c;以便更好地管理和解决复杂的软件工程问…

005 OpenCV直方图

目录 一、环境 二、直方图原理概述 三、代码 一、环境 本文使用环境为&#xff1a; Windows10Python 3.9.17opencv-python 4.8.0.74 二、直方图原理概述 OpenCV是一个广泛使用的开源计算机视觉库&#xff0c;它提供了许多用于图像处理和分析的函数和算法。其中&#xff…