Nginx文件上传错误 - 文件太大

时间:2017-08-15 14:05:34

标签: php nginx

我在centOS发行版上有nginx。一切都配置为上传文件对我来说很好..

  • 在etc / php.ini中(不知道为什么在centos这个文件是在其他的根目录但是它的工作)我有 upload_max_filesize 60M, client_max_body_size 80M和 post_max_size 80M。

nginx服务器配置等其他文件也有这些上传指令。

但是当我上传1mb文件时,nginx错误413 Request Entity Too Large。 我的网络应用程序显示该服务器具有60mb文件限制,如info.php文件。 我做了重启,nginx重装,重启,php重装。

我已经检查了stackoverflow和net上的所有内容以修复此问题,但没有任何帮助。

Nginx日志:Nginx显示用户正在尝试上传大于限制的文件。

我的 info.php 文件有一个pdf:http://docdro.id/YAylJcO

2 个答案:

答案 0 :(得分:2)

您是否编辑过nginx.conf。 在服务器部分中添加client_max_body_size xxM,其中xx是您要允许的大小(以兆字节为单位)。

答案 1 :(得分:0)

默认情况下,nginx配置为允许客户端最大主体大小为1MB。您正在上传的文件(〜8MB)大于1MB,这就是为什么返回413(请求实体太大)错误的原因。

要解决此问题,只需编辑 nginx.conf 并添加client_max_body_size配置,如下所示:

    ######################
    # HTTP server
    ######################
    server {
        ...
        listen       80;
        server_name  xxxx.com;
        client_max_body_size 20M;
        ...
    }

如果您还配置了HTTPS,请确保在其中也添加client_max_body_size

    ######################
    # HTTPS server
    ######################
    server {
        ...
        listen       443 default_server ssl;
        server_name  xxxx.com;
        client_max_body_size 20M;
        ...
    }

重新加载服务器,您应该会很好!

[服务器] $ sudo service nginx reload


有关client_max_body_size的更多信息,请访问:http://nginx.org/en/docs/http/ngx_http_core_module.html#client_max_body_size

  

语法:client_max_body_size大小;

     

默认值:client_max_body_size 1m;

     

上下文:http,服务器,位置

     

设置客户端请求正文的最大允许大小,在   “内容长度”请求标头字段。如果在请求中的大小   超过配置的值,则出现413(请求实体太大)错误   返回给客户端。请注意,浏览器无法   正确显示此错误。将大小设置为0将禁用对   客户请求正文大小。