您的位置:

nginx默认上传文件大小

一、nginx默认上传文件大小介绍

nginx默认上传文件大小是指nginx服务器在接受客户端上传文件时的最大文件大小,默认大小为1MB。这个1MB的大小是由nginx在编译时设置的,设置方法为在 configure 文件中使用 --with-http_dav_module=shared --with-http_dav_module限制文件大小。如果需要更改默认大小,在重新编译 nginx 之前需要进行手动更改。

二、修改nginx默认上传文件大小的方法

1、打开nginx配置文件(nginx.conf)。

$ vim /etc/nginx/nginx.conf

2、在http节点下面添加client_max_body_size,一般设置为比较大的值,如100M。

http {
   ...
   client_max_body_size 100M;
   ...
}

3、保存并重启nginx服务。

$ service nginx restart

三、nginx最大上传文件大小的限制

除了nginx自带的默认上传文件大小限制,还存在着操作系统、浏览器和Web服务器等各个环节对上传文件大小的限制。

1、操作系统的限制

操作系统也会对上传文件大小进行限制。Linux的各个版本限制方式可能略有不同,但一般都是使用ulimit设置进程可用的最大文件大小。如果上传的文件大小大于还没有写入磁盘的内存大小,进程会被Linux内核杀死并抛出错误信息。可以使用ulimit -f命令查看当前的文件大小限制。

2、浏览器的限制

浏览器也会对上传文件的大小进行限制。这个限制可能是浏览器本身内置的限制,也可能是Web服务器上限制上传文件大小的设置所导致的。一般来说,大部分浏览器都有一个默认的上传文件大小限制,例如Internet Explorer是2GB,Firefox和Chrome都是4GB。

3、Web服务器的限制

Web服务器除了nginx默认的上传文件大小限制,还可以通过其他设置限制上传文件大小。如Apache可以通过修改.htaccess文件或者httpd.conf文件的LimitRequestBody指令设置最大上传文件大小。

四、nginx上传文件大小错误问题处理

当上传文件大小超过服务器限制时会出现nginx的400错误:client intended to send too large body:

$ nano /etc/nginx/nginx.conf

添加或者修改了client_max_body_size 100M参数后,发现重启nginx服务后无效。这时候需要找到nginx.conf文件中的http段,加入如下的语句即可。

http {
    ...
    client_body_buffer_size 128k;
    client_max_body_size 100m;
    ...
}

保存文件后重新加载nginx就可以解决错误了。如果还是存在问题,可以通过查看nginx的错误日志,找到出错的原因。

五、总结

本文详细介绍了nginx默认上传文件大小,以及修改和限制上传文件大小的方法。另外,还介绍了操作系统、浏览器和Web服务器对上传文件大小的限制,并给出了错误问题的处理方法。希望对大家有所帮助。