【Java-SpringBoot+Vue+MySql】前后端分离项目云端部署

目录

部署环境:

安装MYSQL:

安装Nginx

安装配置JDK 

远程连接数据库

前端打包

后端打包

心得:


 

部署环境:

CentOS7.6

MySQL5.7

JDK1.8

Nginx1.8

下载MySQL

MySQL :: Download MySQL Community Server (Archived Versions)

RPM安装mysql5.7_Code粥的博客-CSDN博客

下载Nginx

nginx: download

下载JDK

【JavaWeb开发-Servlet】将项目部署在云服务器_代码骑士的博客-CSDN博客

我的安装包:

链接:https://pan.baidu.com/s/15r6dNEPEpdmojArniSAWtw 
提取码:yhun 
--来自百度网盘超级会员V3的分享

工具:

 

步骤:

安装MYSQL:

1、创建server文件夹,用于存放部署环境安装包。 

pwd——查看当前目录

/root

cd /usr/——切换目录

ls——显示当前文件下的目录

mkdir server——创建目录server

cd server/——切换目录

2、将环境压缩包拖入server目录

3、卸载Linux自带的数据库mariadb(注意命令改为自己的版本)

# 查找
rpm -qa|grep mariadb
#mariadb-libs-5.5.60-1.el7_5.x86_64
# 卸载

rpm -e mariadb-libs-5.5.60-1.el7_5.x86_64 --nodeps

 解压mysql压缩包到mysql目录

mkdir mysql/

tar xvf mysql-5.7.34-1.el7.x86_64.rpm-bundle.tar -C mysql

切换到安装目录

cd /usr/server/mysql/

安装依赖

yum -y install libaio
yum -y install libncurses*
yum -y install perl perl-devel

 执行安装

rpm -ivh mysql-community-common-5.7.34-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.34-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.34-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.34-1.el7.x86_64.rpm

 启动mysql服务

#启动mysql
systemctl start mysqld.service
#查看生成的临时root密码
cat /var/log/mysqld.log | grep password

ph,>?lotl9Nl

# 登录mysql
mysql -u root -p
Enter password: #输入在日志中生成的临时密码
# 更新root密码 设置为123456
set global validate_password_policy=0;
set global validate_password_length=1;

set password = password('123456');

授予远程连接权限

grant all privileges on *.* to 'root' @'%' identified by '123456';
# 刷新
flush privileges;

退出mysql使用其他指令

#退出mysql

exit

#mysql的启动和关闭 状态查看
systemctl stop mysqld
systemctl status mysqld
systemctl start mysqld

#这里输入下面的指令即可:
#建议设置为开机自启动服务
systemctl enable mysqld
#查看是否已经设置自启动成功
systemctl list-unit-files | grep mysqld 

 关闭防火墙(阿里云使用安全组,默认关闭防火墙)

firewall-cmd --state #查看防火墙状态
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动

安装Nginx

 安装包也可以,yum也可以,此处用yum安装更快。

yum install epel-release
yum update
yum -y install nginx

nginx指令

systemctl start nginx #开启nginx服务(下完先启动一下)
systemctl stop nginx #停止nginx服务
systemctl restart nginx #重启nginx服务

安装配置JDK 

进入server目录,解压jdk压缩包(nginx压缩包没用上就可以删了)

cd /usr/server/

解压:

tar -zvxf jdk-8u351-linux-x64.tar.gz

进入jdk1.8目录,

 cd jdk1.8.0_351/

编辑 /etc/profile 文件

vim /etc/profile
# 文件末尾增加
export JAVA_HOME=/usr/server/jdk1.8.0_351
export PATH=${JAVA_HOME}/bin:$PATH 

 执行source命令使配置立即生效

source /etc/profile

 检查版本查看是否安装成功

java -version

 

远程连接数据库

前端打包

之前下载完nginx我们顺手启动了一下,现在在浏览器输入公网ip是可以访问到启动页面的:

 将在本地的ip(localhost)改为对应的云服务器公网ip,终端执行打包指令:npm run build

在服务器终端新建文件夹存储前端打包好的dist文件

 cd /usr/
 mkdir app/

cd app/

将dist文件拖入

前端修改好路径,端口,进行打包。

 本地的代理配置没用了可以注释掉

run build

将打包好的dist文件拖入app目录 

配置nginx文件

方法1:

默认监听80端口

cd /etc/nginx/conf.d/
创建

vim vue.conf

server {
listen 80;
server_name locahost;
location / {
root /usr/app/dist;
index index.html;
}
}

使配置生效

nginx -s reload

 

方法2: 

我在本地运行时前端代理:

意思是:只要我们访问路径中第一个请求是api就自动跳转到 target路径。

当我们把前端部署到服务器用nginx代理时也是同理。

步骤: 

cd /etc/nginx/
vim nginx.conf

vim /etc/nginx/nginx.conf

 

使配置生效

nginx -s reload

再次访问公网ip会看到不一样的风景

vuedemo

后端打包

修改数据库配置,确保云端存在。

localhost可改可不改,因为云端主机就是公网ip。

打开maven包管理器 ,点击package,进行打包

 找到打包好的jar包

将其上传到服务器

启动java程序 

cd /usr/app/

nohup java -jar import-execl-demo-0.0.1-SNAPSHOT.jar > logName.log 2>&1 &

注意:不要写成nohup  

查看当前日志

cat logName.log

cat /sur/app/logName.log

 

打开日志发现8080端口已经被使用了,所以我们要修改端口重新打包一次。 

重新上传执行指令 

nohup java -jar import-execl-demo-0.0.1-SNAPSHOT.jar > logName.log 2>&1 &

linux中所有基础命令失效,显示找不到该命令

原因:

有可能是之前修改了etc/profile.d目录下的环境变量配置文件导致。

解决办法:

方法一:恢复配置文件。

如果记得修改了配置文件那个地方,可以将配置文件修改回去,然后再保存更新。

方法二:直接在linux命令行界面输入如下,然后回车(导入环境变量,以及shell常见的命令的存放地址):

 export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

方法三:如果系统所有命令都不能使用时,可以使用绝对命令vi打开profile

/bin/vi  /etc/profile.d/环境变量文件名
# 在系统的配置文件里添加[环境变量]地址
export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

心得:

服务器的环境配置比较容易解决,个人感觉比较棘手的是跨域问题和Nginx代理的配置问题,跨域问题通过杨海钰同学的帮助在前端添加代理已完美解决;部署服务器后由于Nginx的重定向机制,总是将post请求转为get请求,改了无数次最后发现是一个location中的“/”发生的问题,最后也是在许敏浩同学的帮助下完美解决,非常感谢两位同学的帮助帮我解决了这两个问题!

Nginx好文章:

https://wenku.csdn.net/answer/941b166eec6e2a18505ebeac6c922c98

 Nginx中location配置详解_51CTO博客_nginx location配置详解

https://mbd.baidu.com/ug_share/mbox/4a83aa9e65/share?product=smartapp&tk=4880dbce99218bf99735e1737f2cbb74&share_url=https%3A%2F%2Fyebd1h.smartapps.cn%2Fpages%2Fblog%2Findex%3FblogId%3D123688681%26_swebfr%3D1%26_swebFromHost%3Dbaiduboxapp&domain=mbd.baidu.com https://mbd.baidu.com/ug_share/mbox/4a83aa9e65/share?product=smartapp&tk=3ec558b7a7b0a18809dba770773c1248&share_url=https%3A%2F%2Fyebd1h.smartapps.cn%2Fpages%2Fblog%2Findex%3FblogId%3D129315682%26_swebfr%3D1%26_swebFromHost%3Dbaiduboxapp&domain=mbd.baidu.com

https://mbd.baidu.com/ug_share/mbox/4a83aa9e65/share?product=smartapp&tk=c023547d1653fdb03aeceab60f3046e8&share_url=https%3A%2F%2Fyebd1h.smartapps.cn%2Fpages%2Fblog%2Findex%3FblogId%3D126000262%26_swebfr%3D1%26_swebFromHost%3Dbaiduboxapp&domain=mbd.baidu.com https://mbd.baidu.com/ug_share/mbox/4a83aa9e65/share?product=smartapp&tk=1aa98da0b91586c001c00e59ea88b641&share_url=https%3A%2F%2Fyebd1h.smartapps.cn%2Fpages%2Fblog%2Findex%3FblogId%3D125947556%26_swebfr%3D1%26_swebFromHost%3Dbaiduboxapp&domain=mbd.baidu.com

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

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

相关文章

【探索 Kubernetes|作业管理 Deployment 篇 系列 12】水平扩展 / 收缩、滚动 / 回滚更新

前言 大家好,我是秋意零。 在上一篇中,我们介绍了控制器的基本设计思想:控制器模式。通过这个 “控制器模式” 我们来看看 Deployment 是如何依靠它来实现的。 最近搞了一个扣扣群,旨在技术交流、博客互助,希望各位…

IBM N系列存储和NetApp FAS之间的对应关系

IBM在很长一段时间都是OEM NetApp的FAS存储作为他的NAS产品线,在IBM叫做Storage N series,就是N系列,在2014年IBM终止了和NetApp之间的OEM关系,目前在市场上的OEM的NetApp存储型号主要是 FAS3000,FAS31和FAS32的中端系…

MySQL-SQL视图详细

♥️作者:小刘在C站 ♥️个人主页: 小刘主页 ♥️努力不一定有回报,但一定会有收获加油!一起努力,共赴美好人生! ♥️学习两年总结出的运维经验,以及思科模拟器全套网络实验教程。专栏&#xf…

chatgpt赋能python:同一个python文件能同时运行多次吗?

同一个python文件能同时运行多次吗? Python作为一种高级编程语言,具有丰富的语法和功能。在编写Python程序时,我们常常需要考虑不同的需求。有时我们可能需要使用相同的python文件运行不同的程序,这时候很自然的问题就会出现&…

数据结构--单链表的查找

数据结构–单链表的查找 均以带头结点链表为例 目标: GetElem(Li):按位查找操作。获取表L中第i个位置的元素的值。 LocateElem(L,e):按值查找操作。在表L中查找具有给定关键字值的元素。 按位查找 按位查找,返回第i 个元素(带头结点) 代码实现 typ…

Diffusion详细学习

解决报错 https://zhuanlan.zhihu.com/p/622238031 原理:https://zhuanlan.zhihu.com/p/612854566 解决内存溢出问题 溢出问题 总结下来:batch_size 和 n_samples 调节 原理学习 扩散模型是一种生成模型,用于生成与训练数据相似的数据。…

go语言学习笔记1

go语言简介 ​ GoLang是一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言;它可以在不损失应用程序性能的情况下极大的降低代码的复杂性,还可以发挥多核处理器同步多工的优点,并可解决面向对象程序设计的麻烦&#x…

架构基本概念和架构本质

什么是架构和架构本质 在软件行业,对于什么是架构,都有很多的争论,每个人都有自己的理解。此君说的架构和彼君理解的架构未必是一回事。因此我们在讨论架构之前,我们先讨论架构的概念定义,概念是人认识这个世界的基础…

从C语言到C++_23(多态)抽象类+虚函数表VTBL+多态的面试题

目录 1. 多态(polymorphism) 1.1 构成多态的两个条件 1.2 虚函数重写(覆盖) 1.3 协变构成多态 1.4 父虚子非虚构成多态 1.5 析构函数的重写 1.6 final 和 override 关键字(C11) 1.7 重载、覆盖、隐藏的对比 2. 抽象类&am…

Mysql_5.7下载及安装(CentOS7)

文章目录 安装MySQL的几种方式一、 使用docker安装MySQL1.1 卸载旧版本(如果存在docker,需先卸载旧版本)1.2 安装Docker使用存储库安装(推荐使用) 1.3 安装mysql5.7.35(普通用户下)*** 安装MySQL:5.7.35镜像*** 进入容器中查看配置文件以及数…

结构化GPT用例,在CSDN私密社区中死磕@ada 探索SpringBoot

在CSDN私密社区中死磕ada 探索SpringBoot Q: Spring的核心概念是哪些?Q: Spring MVC的核心概念是哪些?Q: SpringBoot的核心概念有哪些?Q: 介绍下SpringBoot AutoConfiguration的机制。Q: SpringBootConfiguration 和 Configuration 的区别是&…

云原生——Kubenetes基础

❄️作者介绍:奇妙的大歪❄️ 🎀个人名言:但行前路,不负韶华!🎀 🐽个人简介:云计算网络运维专业人员🐽 目录 一.什么是Kubernetes? 二.为什么你需要 Kubern…