记录前后端分离项目部署到云服务器;前端使用vue,element-ui,axios,router进行开发;后端使用springboot,mybatis,MySQL进行开发;完整记录前端项目npm打包静态文件,后端项目打包jar包;前后端项目运行环境搭建,包括MySQL数据库启动,阿里云服务器与Linux系统防火墙规则开启,Nginx服务器的安装与配置
文章目录
- 1. 启动数据库
- 2. 创建数据库
- 3. 阿里云开放端口
- 4. 运行SQL文件
- 5. 打包前端文件
- 6. 服务端创建文件夹
- 7. 打包后端jar包
- 8. 安装配置Nginx服务器
- 9. 启动Tomcat
- 10. 项目文件上传部署
1. 启动数据库
使用命令cd /opt/mysql/support-files
进入support-files目录
使用命令./mysql.server start
启动MySQL服务
使用命令mysql -uroot -p
,之后输入密码RvvUy9hbwdDuFKl
即可进入MySQL数据库命令行
2. 创建数据库
使用SQL语句CREATE USER 'ssmdb'@'%' IDENTIFIED BY 'ssmdb'
创建数据库独立用户
使用SQL语句GRANT ALL PRIVILEGES on ssmdb.* to 'ssmdb'@'%'
为数据库独立用户授权
3. 阿里云开放端口
4. 运行SQL文件
5. 打包前端文件
运行命令npm run build
打包前端文件,生成所需的文件在dist目录
6. 服务端创建文件夹
创建日志目录
创建上传文件目录
7. 打包后端jar包
8. 安装配置Nginx服务器
使用命令cd /usr/local/nginx-1.20.1/
进入nginx解压后的目录
使用命令yum -y install zlib zlib-devel openssl openssl-devel pcre pcre-devel
安装依赖
使用命令./configure --prefix=/opt/nginx
指定安装位置
使用命令make
预编译
使用命令make install
安装
使用命令cd /opt/nginx/sbin
进入目录
安装成功,使用命令./nginx
启动 nginx
使用命令./nginx -s reload
重载配置文件
使用命令./nginx -s stop
停止nginx
使用命令ps -ef | grep nginx
查看 nginx 进程
出现下图所示,则说明Nginx部署成功
前后端分离的项目可能会存在跨域的问题,现在提供两个解决方法:
方法一: 使用Nginx做端口代理,前端的所有请求转发到后端服务,具体Nginx配置如下图所示
使用命令vim /opt/nginx/conf/nginx.conf
设置Nginx端口转发文件,如下图所示:
方法二: 直接在服务器放行后端端口,比如笔者的后端端口是9999,设置Linux系统防火墙,将9999端口放行
具体操作如下所示:
linux7.6系统防火墙相关设置
- 使用如下命令检验防火墙是否启动
firewall-cmd --state
- 使用如下命令检查系统已经开放的所有端口
firewall-cmd --permanent --zone=public --list-ports
- 使用如下命令开启 9999 端口:
firewall-cmd --zone=public --add-port=9999/tcp --permanent
- 使用如下命令重新启动防火墙
firewall-cmd --reload
- 使用如下命令验证 9999 端口是否生效
firewall-cmd --zone=public --query-port=9999/tcp
防火墙的启动与关闭
systemctl start firewalld #启动防火墙
systemctl stop firewalld #停止防火墙
systemctl disable firewalld.service #禁止firewall开机启动
systemctl enable firewalld.service #设置开机启用防火墙
9. 启动Tomcat
使用命令cd /opt/apache-tomcat-9.0.37/bin
进入指定目录,使用命令./startup.sh
启动Tomcat
10. 项目文件上传部署
打包好的项目前后端文件放在桌面,如下图所示:
将前端文件上传服务器,如下图所示:
将后端文件上传服务器,如下图所示:
使用命令nohup java -jar news.jar > /dev/null 2> /dev/null &
运行jar包文件
nohup表示即使退出终端该进程也不会被杀掉, & 放在命令到结尾,表示后台运行
/dev/null 表示空设备文件 (位桶(bit bucket)或者黑洞(black hole)的地方)
0 表示stdin标准输入
1 表示stdout标准输出
2 表示stderr标准错误
部署成功如下图所示: