小白第一次部署前后端数据库分离项目

大三上期学校有个信息系统管理设计和开发的课程,想来自己还没碰过服务器,正好也在学习oracl数据库,就想着自己0到1实现一个简单的信息系统满足课程要求,顺带自己巩固学到的数据库知识。本次项目,前端采用的是react+antd+axios+umi+dva一套,后端采用springboot3+jdk17+mybaits-puls版本,数据库前期采用的oracl数据库,但是后来部署上服务器oracl要给Money,本着大学生穷的原则,就更改成mysql数据库了。文章一共分为三部分,分别是mysql数据库,后端java部署,前端nginx部署三部分,关于jdk17 mysql5.7 以及nignx的安装与配置,还不懂的可以去看看我前面的三篇文章,讲的非常详细。

服务器端口开启

这坑一定要提前说,因为作者在这里耗了很久,当时死活找不到什么原因,第二天睡醒了才想起服务器端口没开放,难怪本地能访问本地数据库和后端,本地访问不了远程数据库和后端,当时找了好久,简直要气炸了。我用的是阿里云服务器,在阿里云服务器的安全组把端口打开,这里3306是mysql数据库的,80是nginx的,5050是我后端java程序的端口。

mysql数据库创建

我采用的navicat访问远程数据库,这里连接名随便取自己以后认得到就可以了,主机就是你服务器的Ip 端口Mysql默认的是3306,密码是你远程数据库的密码。

数据导入数据库

1.把本地数据库的数据转储

先把本地数据库的数据转储为sql文件,我导入到的是桌面。其他数据库也是一样的转储,但是不同的数据库数据类型不一样,比如你oracl数据库数据转储出来到mysql数据库,可能就会有问题,数据类型问题就读者自行百度搜索解决。

2.新建远程数据库

数据转储之后,同样的鼠标右击点击自己远程的数据库,过程和转储数据一样的,在转储上面有个新建数据库,新建数据库,数据库的字符集和排序规则在转储的数据库可以看见的

这样数据库就建立好了,接下来将数据存入数据库里面

3.数据库存入数据

点击刚才创建好的数据库,然后鼠标右键有一个运行sql文件,点击之后按照下图选择之前转储的sql文件就可以了。然后点击开始,等待转储过程就可以了。
注意: 完成之后看不到数据库里面没数据,刷新一下界面就可以了。

这样数据库就弄好了,接下来就是将后端程序连接数据库了

后端部署

1.更改后端数据库访问地址

首先在后端程序里面,将数据库地址更改了,改成访问远程数据库的账号密码 注意: 你们更改了数据库,和代码 一定一定要在本地先调试通过了再接下来搞。 在本地调试,比如前后端都开启,只不过是访问数据库从本地换成了服务器的数据库,看看后端能不能访问到服务器数据库。如果可以就继续,如果不可以,看看这篇文章开头的,有没有把服务器数据库的3306端口开放。通过了再把后端程序打包成Jar包。
2.将打包的jar包上传到服务器

我打包并且重命名为Dormitory-management-back.jar包然后通过xftp软件 在本地把jar包上传到服务器

3.进入linux系统启动Jar包

进入到jar包的文件夹,在这里我的是在/usr/app里面执行Linxu命令

js 复制代码
nohup java -jar Domitory-management-back.jar >output 2>&1 &

执行命令后我们java程序就linux后台启动了。 也可以看见多了一个文件

4.检查java是否运行

我将我的前端代码proxy代理 到服务器上面,可以登录,说明jar包运行起来了,如果访问失败,再次提醒看看自己服务器的端口有没有开放,如果开放了还有错,看看是不是Jar包程序本身有问题,在本地试一试jar包

前端部署

首先对前端项目进行打包成dist,要是打包这些都不会,部署个jimao。

1.上传打包dist文件内容到linux

我是放在/usr/share/student文件里面(放到其他位置小心读取文件有没有权限)

2.配置nginx配置文件

我的安装位置在/usr/local,里面有个nginx文件,这个nginx就是安装文件,接下来进入nginx/conf文件里面,这里面就是配置文件

这个conf.d文件不是安装就有的,是我自己创建的,然后里面是写我们自己的nginx配置文件,至于他为什么要读取我这个自定义的conf.d文件,我在前一篇nginx的安装配置文章里面讲解了,配置起来很简单,就创建一个conf.d文件夹,然后再在nginx.conf添加一条语句就可以了,不懂得去看看我前一篇文章后面部分,真的相当简单。

3.配置自定义的.conf文件

先随便创一个xxxx.conf文件(一定是以.conf结尾)

然后编辑他,然后保存退出即可,配置文件我在本章后面详细说了一些注意事项

4.重启nginx服务

进入到安装路径并且重启nginx服务

js 复制代码
cd /usr/local/nginx/sbin
./nginx -s reload

5.访问ip查看是否部署ok

我可以登录说明nginx已经部署好了,并且mysql java 也是弄好了的,至此部署完成

6.自定义conf配置文件的详细说明 这是我的配置文件,接下来详细的说一下

js 复制代码
server{
    #监听80端口
    listen 80 default_server;
    listen [::]:80 default_server;
    # root 的位置是我们dist文件里面的内容,你们也可以自己配置读取dist位置
        root /usr/share/student;
        try_files  $uri $uri/ /index.html;
    #location知识点比较多,下面来讲解
    location /api/ {
        proxy_pass  http://8.130.166.67:5050/;
     }

}

首先这个location的 / xxxx / 是正则。匹配xxxx,比如我的就是要匹配api。为我在求数据的时候网络封装肯定是带了api的,然后把api替换成了真实的地址比如:proxy代理也是替换api

但是后端接口是没有api前缀的,后端接口都是/dormitory/faculty;这说明了api这个其实是我们不需要的,我们要把它替换成我们真实的地址; proxy_pass就是nginx的反向代理

接下来还要注意这个/ ;这个斜杠要与不要的区别十分大,这里推荐我学长的一篇文章,他写的相当清楚明了nginx部署前端页面 - 掘金 (juejin.cn)

总结

这篇文章十分基础,适合第一次部署的小白。一般企业或者实验室部署项目都是用的docker,还涉及的nginx的负载均衡的几种策略。希望文章对读者有用吧。

相关推荐
xujiangyan_1 天前
nginx的反向代理和负载均衡
服务器·网络·nginx
viqecel2 天前
网站改版html页面 NGINX 借用伪静态和PHP脚本 实现301重定向跳转
nginx·php·nginx重定向·301重定向·html页面重定向
硪就是硪2 天前
内网环境将nginx的http改完https访问
nginx·http·https
ak啊2 天前
Nginx 安全加固详细配置指南
nginx
沐土Arvin2 天前
Nginx 核心配置详解与性能优化最佳实践
运维·开发语言·前端·nginx·性能优化
haoranyyy3 天前
mac环境中Nginx安装使用 反向代理
linux·服务器·nginx
ak啊3 天前
Nginx 高级缓存配置与优化
nginx
再学一丢丢3 天前
Keepalived+LVS+nginx高可用架构
nginx·架构·lvs
xujiangyan_3 天前
nginx的自动跳转https
服务器·nginx·https
tingting01194 天前
k8s 1.30 安装ingress-nginx
nginx·容器·kubernetes