记录部署若依ruoyi到服务器遇到的问题
一、启动前检查redis、mysql、nginx是否正在运行
1.检查mysql
ps -ef|grep mysql
2.检查redis
ps -ef|grep redis
3.检查nginx
systemctl status nginx
二、redis拒绝连接
Caused by: io.netty.channel.AbstractChannel$AnnotatedConnectException: 拒绝连接: /192.168.x.x:6379
当遇到redis拒绝连接时,将application.yml 配置文件里的redis的host 配置为localhost,不要配置为服务器的ip地址:
三、 后端服务器成功启动,访问前端地址却加载不出资源
控制台输出:
这个问题大概率是服务器上的nginx的配置文件没配置好(一脸坚定.jpg),一定要好好检查配置文件!!!实在不行就把nginx配置文件全换成其他人的,再对照自己原有的配置文件修修改改(因为全复制别人的大概率会报错)
nginx配置文件:
user root;
worker_processes 1;
#error_log /www/wwwlogs/nginx_error.log crit;
#pid /www/server/nginx/logs/nginx.pid;
events
{
use epoll;
worker_connections 51200;
multi_accept on;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
client_max_body_size 100m;
#用于tomcat反向代理,解决nginx 504错误
proxy_connect_timeout 7200; #单位秒
proxy_send_timeout 7200; #单位秒
proxy_read_timeout 7200; #单位秒
proxy_buffer_size 16k;
proxy_buffers 4 64k;
proxy_busy_buffers_size 128k;
proxy_temp_file_write_size 128k;
# ps:以timeout结尾配置项时间要配置大点
server {
listen 70;
server_name localhost;
charset utf-8;
location /{
root /opt/ruoyi/dist;
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/;
}
location /dev-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;
}
}
}
四、前后端成功启动,但是首页登录页面不出验证码,并报错:
{"msg":"Handler dispatch failed; nested exception is java.lang.InternalError: java.lang.reflect.InvocationTargetException","code":500}
这个问题是图形验证码依赖了系统组件,需要在服务器安装依赖,应该是依赖了字体库,所以要安装字体库
命令如下:
yum install fontconfig
fc-cache --force
安装完后请重启服务器(似乎不用重启也可以~~)
重启服务器命令:
reboot
然后依次启动nginx、redis、mysql
启动nginx:
systemctl start nginx
到安装redis的bin目录下,启动redis
cd /usr/local/redis/bin
//启动redis
./redis-server
因为我的mysql是装在docker里的,所以:
docker start mysql
//不是装在docker里的正常启动mysql就好
以上,安装字体库之后再重启项目,即可显示验证码