RuoYi若依前后端分离版war包部署

一 前言

若依官网:http://ruoyi.vip
若依代码下载:https://gitee.com/y_project/RuoYi-Vue

若依分离版使用的版本是V3.7.0,虽然官方文档部署写得挺好,但是自己实际部署操作过程中还是会遇到问题,验证码不通,访问不了后台等,就写一篇文章记录下。本次使用的是虚拟机安装的Linux系统。自行安装好环境JDK、Mysql、Redis和Nginx,并开放默认端口。

本人使用的版本如下:

JDK = 1.8 
Mysql = 5.7.0 
Redis = 4.0
Nginx = 1.18
Tomcat = 8
Linux = CentOS Linux release 7.9.2009 (Core)

二 部署系统

VMware虚拟机安装好的Linux系统,本次使用xshell连接。

0ea9852535cf4b4b141f84bb774776ce.png

72a9c385b613437b13b6cc3f7cbd81d0.png

2.1 后端部署

2.1.1 部署到linux系统,代码下载下来需更改几个地方

1.修改ruoyi-admin模块pom.xml文件打包方式为war包。本次后端使用IntelliJ IDEA工具打开的。

383f1c130388822bffd43b8407eee19e.png

 2.修改ruoyi-admin模块下application.yml配置文件路径、redis如下:

272fc1c7cb0130b9716803d2538cdabb.png

bf3b80cb25aaf0f7bc016705b04bfe28.png

3.修改ruoyi-admin模块下application-druid.yml配置数据库地址、账号和密码如下:

4fa6385e2ab6aa480a0975e8dd367c32.png

 4.修改ruoyi-admin模块下logback.xml配置日志路径如下:

cf44b58a9a77ac295ec74742f229db7e.png

 注:更改地址为服务器地址,需要在服务器建有文件夹。

999379602b336a4bed9fa9f879248290.png

2.1.2 打包上传

可以使用IntelliJ IDEA工具打包,或在ruoyi项目的bin目录下执行package.bat打包Web工程,生成war包文件。然后会在项目下生成target文件夹包含war。

bfd0392b03de18a3f39f068f7126a473.png

 将ruoyi-admin.war上传到服务器tomcat8下webapps中,本次通过Xftp上传。

db538ec91daba2dd8cba1753ec215dbf.png

进入tomcat8下的bin目录执行启动命令:./startup.sh,查看日志:tail -f ../logs/catalina.out,

等待启动完成。

e2803a8abac7161f3ff278becccced40.png

 在浏览器输入后端服务器地址:http://192.168.56.130:8080 ,出现如下图则表示后端部署完成。

d664a052cdd465db7a25033d1c0b62fd.png

2.2 前端部署

2.2.1 前端打包

前端可以使用Visual Studio Code、IntelliJ IDEA或WebStorm打开,本次使用Visual Studio Code打开,在下面终端处输入命令:npm install --registry=https://registry.npm.taobao.org 下载依赖。输入命令:npm run build:prod 打包。

e3cf357f582c673cc1207eb01ce70fdf.png

构建打包成功之后,会在根目录生成 dist 文件夹,里面就是构建打包好的文件,通常是 ***.js 、***.css、index.html 等静态文件。

5f09711dc637a5e2cea0433abe687717.png

将dist文件夹的静态文件发布到你的 nginx 或者静态服务器即可。本次放在虚拟机安装的Linux系统中/home/ruoyi/projects/ruoyi-ui目录下,如下图:

4e0e02c903232bc80aface4d03a3a919.png

需要注意的是在dist目录的文件夹下新建WEB-INF文件夹,并在里面添加web.xml文件,配置如下:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" 
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
        http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
        version="3.1" metadata-complete="true">
     <display-name>Router for Tomcat</display-name>
     <error-page>
        <error-code>404</error-code>
        <location>/index.html</location>
    </error-page>
</web-app>

2.2.2 Nginx配置

前期安装好的Nginx,现在可以进行配置

c0e7fe97b4b121cca603523a1066443f.png

 更改nginx.conf配置如下:

worker_processes  1;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;

    server {
        listen       80;
        server_name  localhost;
		charset utf-8;

		location / {
            root   /home/ruoyi/projects/ruoyi-ui;
			try_files $uri $uri/ /index.html;
            index  index.html index.htm;
        }
		
		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:8080/;
		}

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}

最后启动nginx

e161d722a142ed7d025a3744a10ca890.png

在浏览器输入IP地址:http://192.168.56.130 ,能进入出现如下图所示即部署成功。 

ecdc64144ee70bdbd2036bd1d80f9a7c.png

验证码能正确显示出来,问题不大了,输入正确账号、密码和验证码登录

850e5270f134b42c4b6cd345e4a9782b.png

三 注意事项

3.1 自行导入数据库

3.2 访问后台总是报404

总是访问不了后台,验证码出不来

449957ca6e06397aad6ec7fbc42a8816.png

 这里是按照官网说的修改server.xml,Host节点下添加:

<Context docBase="" path="/" reloadable="true" source=""/>

就出现这种情况,T坑。1b2b6e3d44def5b1b89c4843d83c90c8.png

 后面更改为自己后端应用路径即可,即使用根目录代替http://192.168.56.130:8080/ruoyi-admin

<Context docBase="/usr/local/tomcat8/webapps/ruoyi-admin" path="/" 
reloadable="true" source=""/>

3.3 前端配置访问后端地址