一、后台部署
部署视频参考:https://www.bilibili.com/video/BV1uK411p7Bp?t=1525
1、通过idea,clone若依管理后台前后端分离版本代码
代码目录结构为
2、把目录里面的SQL文件,执行到需要读取数据库的服务器上
3、修改配置文件application-druid.yml,更改数据库连接地址,用户名和密码为数据库本地的
4、修改日志配置文件logback.xml,在文件里面的encoder标签里面添加字符集,一共有四处左右
<encoder>
<pattern>${log.pattern}</pattern>
<charset>UTF-8</charset>
</encoder>
5、如果项目里面的8080端口在服务器里面已经被占用,那就更改application.yml文件里面的端口号,我的更改为8011,然后使用idea的工具打包项目,也可以在文件夹里面的根目录下的/bin/package.bat直接运行打包,
6、开放服务器里面的8011端口,参考如下:
CentOS7查看开放端口命令及开放端口号
查看已开放的端口
firewall-cmd --list-ports
开放端口(开放后需要要重启防火墙才生效)
firewall-cmd --zone=public --add-port=端口号/tcp --permanent
重启防火墙
firewall-cmd --reload
关闭端口(关闭后需要要重启防火墙才生效)
firewall-cmd --zone=public --remove-port=端口号/tcp --permanent
开机启动防火墙
systemctl enable firewalld
开启防火墙
systemctl start firewalld
禁止防火墙开机启动
systemctl disable firewalld
停止防火墙
systemctl stop firewalld
7、将第五步打包好的jar文件,上传到服务器,我的上传目录是/root/ruoyi/,更改jar包名为ruoyi.jar,然后执行命令
cd /root/ruoyi/
nohup java -jar ruoyi.jar &
这时候后台就部署好啦,下面开始前端的部署
二、部署前端
1、在工具里面打开ruoyi-ui,我用的是webstorm,然后执行命令
npm install --registry=https://registry.npm.taobao.org
2、更改ruoyi-ui目录下的vue.config.js文件,如下图红色部分,第一个是前端访问端口,第二个是后台的api地址,
3、执行打包命令
npm run build:prod
生成的文件如下:
4、将生成的dist文件夹上传到服务器,我的上传目录和后台的jar包一样,依然是/root/ruoyi/,如下图
nohup.out是启动日志文件,日志文件在后台的logback.xml配置文件的value路径:/root/ruoyi/logs
5、配置Nginx(http协议版本),我的Nginx配置文件nginx.conf在/etc/nginx/下面,添加如下代码
server {
listen 88;
server_name yourServerUrl;#这里需要修改
location / {
root /root/ruoyi/dist;
index index.html index.htm;
try_files $uri $uri/ /index.html; #解决页面刷新404问题
}
location /prod-api/{
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://localhost:8011/;#这里需要修改
}
}
https协议版本的nginx配置
server {
listen 443 ssl;
server_name admin.yoururl.com;#你的HTTPS地址
ssl_certificate /opt/certs/admin/admin.pem;#本行和下一行是你的HTTPS证书
ssl_certificate_key /opt/certs/admin/admin.key;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
client_max_body_size 3m;
location / {
root /root/admin/dist/;#这里的位置是你项目位置
index index.html index.htm;
try_files $uri $uri/ /index.html; #解决页面刷新404问题
}
location /prod-api/ {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://localhost:8011/;#这里需要修改
}
}
第一个location是前端的访问配置,端口是88,如果该端口未开放,参考上面的开放端口步骤
第二个location是前端的访问api代理,否则会报404错误
注意:如果配置了Nginx之后,访问报500错误,可以参考https://cloud.tencent.com/developer/article/1725936
如果报错403,在nginx.conf配置文件的顶部,查看用户是否和启动用户一致
到这里前后端部署就完成了,然后就可以启动项目了,我也是第一次部署前后端分离的项目,之前部署的都是springboot+layui的不分离的,直接运行jar包,开放端口就可以,所以这次踩了好些坑,在这里记录一下,希望下次熟练点!