Nginx上传大文件超时解决办法

情况如下:使用nginx作为代理服务器时,上传大文件时(我测试过50m上传的文件),会提示上传超时或文件过大。

原因是nginx对上传文件的大小有限制,默认是1M。另外,如果文件很大,你应该调整上传超时。

解决方法是在nginx配置文件中加入如下配置:

client_max_body_size     50m; // File size limit, default 1m
client_header_timeout    1m; 
client_body_timeout      1m; 
proxy_connect_timeout     60s; 
proxy_read_timeout      1m; 
proxy_send_timeout      1m;

各参数含义:

client_max_body_size

限制请求体的大小,超过指定大小返回413错误。

client_header_timeout

读取请求头的超时时间,如果超过指定大小,则返回 408 错误。

client_body_timeout

读取请求实体的超时时间,如果超过指定大小,则返回 413 错误。

proxy_connect_timeout

http请求不能立即被容器(tomcat、netty等)处理,放到nginx池中进行处理。该参数为最大等待时间,默认60秒,官方推荐不超过75秒。

proxy_read_timeout

http请求经过容器(tomcat、netty等)处理后,nginx等待处理结果,即容器返回的响应。该参数为服务器响应时间,默认为 60 秒。

proxy_send_timeout

当服务器处理http请求时,将数据发送回Nginx的默认时间为60秒。



Nginx上传大文件超时解决办法插图

关注公众号:程序新视界,一个让你软实力、硬技术同步提升的平台

除非注明,否则均为程序新视界原创文章,转载必须以链接形式标明本文链接

本文链接:http://choupangxia.com/2021/07/22/nginx-upload/