nginx上传文件大小

采用nginx作反向代理,出现了一个诡异的问题,小文件可以提交,大文件会报500内部错误。这个是什么原因导致的呢?

查wiki可知,上传文件大小相关的有三个配置

client_body_buffer_size 配置请求体缓存区大小, 不配的话,

client_body_temp_path 设置临时文件存放路径。只有当上传的请求体超出缓存区大小时,才会写到临时文件中

client_max_body_size 设置上传文件的最大值

所以查出来,问题出现的原因是

1.文件大小超过了client_body_buffer_size

2.client_body_temp_path的临时文件路径居然没有写权限

以上两个原因导致了返回500错误。

如果上传文件大小超过client_max_body_size时,会报413 entity too large的错误。

原因知道了,修正就简单了。

1.client_body_buffer_size 尽量设置的大点,这是基于速度的考虑,如果因为设置的过小,导致上传的文件老要写磁盘,那速度就太慢了。

2.client_body_temp_path 路径要有可写权限,这个是明显的错误了。改正了就好

3.client_max_body_size 设置上传文件的最大值,这个是基于安全的考虑,我们认为正常用户不会或者基本不会上传太大的文件。

可以设置为client_max_body_size 100m;  或者按照自己的业务来设置这个值。

时间: 2024-08-01 10:07:29

nginx上传文件大小的相关文章

php和nginx默认上传文件大小限制的解决办法

以下配置在redhat6.4下完成 php上传文件大小限制: 1,首先找到php在用的配置文件 # php –ini 会输出:loaded configureration file:    /usr/loca/php/etc/php.ini 2,编辑php.ini #vim /usr/loca/php/etc/php.ini 3,修改其中的upload_max_filesize 10M  #默认值是2M 保存,退出vim 4,注意:要重启php-fpm,很多人说修改了不生效就是这么回事. #se

php+nginx 限制上传文件大小

问题:在后台上传8M大小的图片,上传不成功 nginx返回413,如下图所示: 分析:nginx配置文件或者php中,可上传的大小设置太小了 解决办法------检查nginx和php的配置文件里面的参数设置,如果不满足8M,就稍微改大点或者压缩图片在指定范围 一.找到php.ini vim /usr/local/php/etc/php.ini      #  查看下这几个参数的大小 post_max_size = 10M upload_max_filesize = 10M max_execut

nginx 配置上传文件大小限制

见下图: client_max_body_size 1024M; 上传文件大小限制 sendfile on; 设置为on表示启动高效传输文件的模式 keepalive_timeout 1800;保持连接的时间,默认65s 原文地址:https://www.cnblogs.com/hz0356/p/9729528.html

nginx上传模块nginx_upload_module和nginx_uploadprogress_module模块进度显示,如何传递GET参数等。

ownload:http://www.grid.net.ru/nginx/download/nginx_upload_module-2.2.0.tar.gzconfigure and make : ./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module   --add-module=/data/software/lnmp1.

Nginx上传文件返回413的解决

通过http上传文件时返回403 Request Entity Too Large错误时,原因是默认设置的允许上传文件太小,默认是2M,如果上传文件大小大于2M时,那么就会返回413的错误,修改nginx配置文件nginx.conf,在http {}段内,server {}段外找到选项client_max_body_size这个选项,如果被注释应该去掉注释修改值,如果没有需要手动添加,具体配置如下: client_max_body_size 8m; 这里改到了8m,一般情况下是够用了,保存之后执

如何解决nginx上传大文件的限制

通过设置nginx的client_max_body_size解决nginx+php上传大文件的问题: 用nginx来做webserver的时,上传大文件时需要特别注意client_max_body_size这个参数,否则会中断在nginx的请求中,在php中是无法记录到访问的. 一般上传大文件流程: 首先修改php.ini文件: file_uploads on 是否允许通过HTTP上传文件的开关.默认为ON即是开 upload_tmp_dir – 文件上传至服务器上存储临时文件的地方,如果没指定

nginx上传模块—nginx upload module-

一. nginx upload module原理 官方文档: http://www.grid.net.ru/nginx/upload.en.html Nginx upload module通过nginx服务来接受用户上传的文件,自动解析请求体中存储的所有文件上传到upload_store指定的目录下.这些文件信息从原始请求体中分离并根据nginx.conf中的配置重新组装好上传参数,交由upload_pass指定的段处理,从而允许处理任意上传文件.每个上传文件中的file字段值被一系列的uplo

LNMP环境修改上传文件大小

LNMP环境修改上传文件大小限制     如果网页上传文件大小大于nginx或php设定的值,就会造成无法上传,显示IO error错误. 如何解决这个问题呢?我们需要更改两个配置: 1.  nginx配置文件: vim /usr/local/nginx/conf/nginx.conf 更改 client_max_body_size 20m; 2.  php.ini: vim /usr/local/php/etc/php.ini 更改 post_max_size 和 upload_max_fil

php 修改上传文件大小 (max_execution_time post_max_size)

有些朋友要通过自己的网站后台,包括论坛,来上传一些文件,php一般为2m,或8m(以下我们按默认为2m),接下来就是来讲怎么修改上传文件大小的. 1.首先修改执行上传文件限制 一般的文件上传,除非文件很小.就像一个5M的文件,很可能要超过一分钟才能上传完.但在php中,默认的该页最久执行时间为 30 秒.就是说超过30秒,该脚本就停止执行.这就导致出现 无法打开网页的情况.这时我们可以修改 max_execution_time 在php.ini里查找max_execution_time默认是30