环境:
Ragflowv0.17.2
问题描述:
RAGFlow上传3M是excel表格到知识库,提示上传的文件总大小过大
解决方案:
定位问题:
1.查询Nginx 日志
-
Nginx 日志
检查 Nginx 配置中日志路径是否正确,确保日志文件有写入权限。
例如,你的配置中日志路径是:
error_log /var/log/nginx/error.log notice; access_log /var/log/nginx/access.log main;
确认
/var/log/nginx/
目录存在,且 Nginx 进程有写入权限。 -
后端日志
确认后端服务(如 Flask、RAGFlow 等)是否开启了日志记录,日志路径是否正确。
2.日志分析
cat /var/log/nginx/access.log
bash
从日志中可以看到,上传请求 /v1/document/upload 返回了 413 (Payload Too Large) 状态码,这表示上传的文件大小超过了服务器的限制。
问题分析
1. Nginx 上传大小限制
413 状态码通常是由 Nginx 返回的,表示请求体大小超过了 client_max_body_size 配置的限制。
虽然你之前提到 client_max_body_size 设置为 128M,但需要确认配置是否生效,或者是否有其他配置覆盖了该值。
2. 后端上传大小限制
如果 Nginx 没有限制,后端服务(如 Flask、RAGFlow 等)也可能设置了上传大小限制。
后端返回 413 时,通常会在日志中记录相关信息,但如果没有日志,需要检查后端配置。
3.查看nginx配置
cat /etc/nginx/nginx.conf
bash
(base) root@VM-0-2-ubuntu:~# cat /etc/nginx/nginx.conf
user www-data;
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;
events {
worker_connections 768;
# multi_accept on;
}
http {
##
# Basic Settings
##
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
# server_tokens off;
# server_names_hash_bucket_size 64;
# server_name_in_redirect off;
include /etc/nginx/mime.types;
default_type application/octet-stream;
##
# SSL Settings
##
ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; # Dropping SSLv3, ref: POODLE
ssl_prefer_server_ciphers on;
##
# Logging Settings
##
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
##
# Gzip Settings
##
gzip on;
# gzip_vary on;
# gzip_proxied any;
# gzip_comp_level 6;
# gzip_buffers 16 8k;
# gzip_http_version 1.1;
# gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
##
# Virtual Host Configs
##
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}
#mail {
# # See sample authentication script at:
# # http://wiki.nginx.org/ImapAuthenticateWithApachePhpScript
#
# # auth_http localhost/auth.php;
# # pop3_capabilities "TOP" "USER";
# # imap_capabilities "IMAP4rev1" "UIDPLUS";
#
# server {
# listen localhost:110;
# protocol pop3;
# proxy on;
# }
#
# server {
# listen localhost:143;
# protocol imap;
# proxy on;
# }
#}
4.修改配置
上传文件大小限制:
配置文件中没有显式设置 client_max_body_size,这意味着默认的上传文件大小限制为 1MB。
如果需要支持更大的文件上传,需要在 http、server 或 location 块中添加以下配置:
bash
client_max_body_size 128M; # 设置为 128MB 或其他合适的大小
5.重启nginx
bash
sudo systemctl restart nginx
6.测试再次上传正常