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

如何解决nginx上传大文件的限制,第1张

  通过设置nginx的client_max_body_size解决nginx+php上传文件的问题:

用nginx来做webserver的时,上传大文件时需要特别注意client_max_body_size这个参数,否则会中断在nginx的请求中,在php中是无法记录到访问的

一般上传大文件流程:

首先修改phpini文件:

  file_uploads on 是否允许通过HTTP上传文件的开关。默认为ON即是开

upload_tmp_dir – 文件上传至服务器上存储临时文件的地方,如果没指定就会用系统默认的临时文件夹

upload_max_filesize 8m 望文生意,即允许上传文件大小的最大值。默认为2M

post_max_size 8m 指通过表单POST给PHP的所能接收的最大值,包括表单里的所有值。默认为8M

  一般来说,设置好上述四个参数后,在网络正常的情况下,上传<=8M的文件是不成问题的

但如果要上传>8M的大文件的话,只设置上述四项还不一定能行的通。除非你的网络真有100M/S的上传高速,否则你还得继续设置下面的参数。

  max_execution_time 600 每个PHP页面运行的最大时间值(秒),默认30秒

max_input_time 600 每个PHP页面接收数据所需的最大时间,默认60秒

memory_limit 8m 每个PHP页面所吃掉的最大内存,默认8M

  webserver用的是nginx,在nginx的conf中添加了一个参数:

默认是1M,需要增大的话。

在nginxconf中增加一句

  client_max_body_size 30m;

  重启即可

30m表示最大上传30M,需要多大设置多大。

要想上传大于2M的文件,你必须修改服务器配置,修改文件phpini查找upload_max_filesize他右面的数值默认是2M

你改成100M即可修改后,还要重启服务器才能生效

网站对上传文件进行大小限制,有以下几点好处:

1、节省服务器空间。每个服务器的磁盘空间是有限的,如果不对用户上传的文件进行大小上的限制,则极其浪费服务器磁盘空间;

2、减少不必要的服务器运算。上传看似简单,其实内部进行了很多复杂的处理过程,对服务器性能是一个考验。而且一般的服务器经受不住大文件的上传;

3、同上面第二点,当上传大文件时,由于网络等原因,会经常造成客户端浏览器卡死,失去响应。

这个是服务器有个文件限制了。在程序里是提高不过200K以上的。

以下是怎么提高上传的大小限制。

2003解决IIS限制上传、下载文件大小及metabasexml修改

1停止IIS Admin Service服务。 2按照如下的路径找到文件:系统盘(C:)Windows System32 inetsrv MetaBasexml, 在该文件中搜索AspMaxRequestEntityAllowed,设置为你想要的数字(默认204800即200K)。 3重新启动IIS Admin Service服务。

默认情况下,在IIS 6 全局配置中允许上传的文件长度最大为4 GB,但是在Web站点级却限制了ASP应用程序上传的最大文件长度为200 KB。如果你需要上传超过200KB的文件,则需要手动修改IIS的metabasexml中对应Web站点的AspMaxRequestEntityAllowed属性。

metabasexml位于"systemroot"\system32\inetsrv"目录下,用于保存IIS的基本配置信息。默认情况下IIS是不允许你直接对metabasexml进行编辑的,你可以通过以下两种方式来实现:

1 停止IISAdmin服务后再编辑;

停止IIS服务与启动IIS服务的方法,在CMD命令行模式下输入以下命令:

1 net stop w3svc (停止IIS服务)

2 iisreset /stop

2 在IIS管理控制台中右击服务器名,选择属性,然后在弹出的服务器属性对话框中勾选允许直接编辑配置数据库,再点击确定即可

然后在任何文本编辑器中打开Metabasexml文件,修改对应Web站点的AspMaxRequestEntityAllowed属性即可,它的单位是字节,默认是204800,改为你需要的值即可。比如改为最大上传20M,则修改此值为:20480000如果实在不知道20M换成字节是多大,就用这个公式计算一下再修改吧:102400020(102400是100K,1024000是1M,以此类推,20M就是102400020=20480000)

3 编辑完记得重启IIS服务

1 net start w3svc (启动IIS服务)

2 iisreset /start

再加上下载不能超过4M的解决办法:

在 IIS 60 中,无法下载超过4M的附件时,可以按以下步骤解决:

1、先在服务里关闭 iis admin service 服务。

2、找到 windows\system32\inesrv\ 下的 metabasexml 文件。

3、用纯文本方式打开,找到 AspBufferingLimit 把它修改为需要的值(可修改为20M即:20480000)。

4、存盘,然后重启 iis admin service 服务。

MetaBasexml是要求很严格的文件,,修改参数或格式一出错就会无法使用,,修改前最好备份,,如果忘了备份,修改又出错,, 还有补救方法:metabasexml所在的目录下还有个history目录,里面存放的是metabasexml文件在各个时间的备份。至此,解决办法也有了,就是从history目录下拷贝一份到inetsrv目录即可(但这样只能修回备份时间前的资料)。如果目录或文件没有就要到别的机拷一份过来,但是这样原先的配置就没了。

本文只限Apache配置主机的使用方法,增加WordPress文件上传大小限制:通过配置phpini的upload_max_filesize 和 post_max_size,重启Apache;通过修改htaccess文件。

最近在用WordPress做一个视频B2B网站,所需要的上传的文件已经远远超过了32MB的限制(32MB的视频能干什么啊)。

网上分享的方法

一如既往的百度,基本大同小异,最后参考了WordPress啦!的增加文件上传大小限制:

一般来说你使用的主机会限制你上传文件的大小,在WordPress的媒体文件上传可以看到,大多数都是2MB(我的是32MB)。如果是的话可能会还够用,但是如果是音频和视频文件就不一定够用了。

方法一:

在functionsphp中添加如下代码,这样上传限制就是64M

复制代码

代码如下:

@ini_set( 'upload_max_size' , '64M' );

@ini_set( 'post_max_size', '64M');

@ini_set( 'max_execution_time', '300' );

方法二:

新建一个phpini文件,在你的主机空间的根目录新建一个phpini文件,里面使用如下代码。

复制代码

代码如下:

upload_max_filesize = 64M

post_max_size = 64M

max_execution_time = 300

方法三:

使用htaccess文件,在这个文件中添加如下代码。

复制代码

代码如下:

php_value upload_max_filesize 64M

php_value post_max_size 64M

php_value max_execution_time 300

php_value max_input_time 300

子任采用方法

我现在是使用的WordPress34+版本,上传文件大小已经是主机配置决定的了,主机本身配置upload_max_filesize 和 post_max_size 都是32M,想要得到效果:

WordPress文件上传大小300MB

上述方法一:无效!

上述方法二:有效,重启Apache

上述方法三:有效,无需重启Apache

总结:上传大小主要用服务器配置决定的,例如后两种方法;而第一种方法不过在服务器配置的基础上来进一步用程序来限制罢了。

子任出于综合考虑,减少服务器不必要的负担,最后采取了第二种方法:

复制代码

代码如下:

upload_max_filesize = 300M

post_max_size = 300M

max_execution_time = 300

在做优化的时候,碰到这么一个问题,需要在一篇文章中加入一个大小为194MB的PDF文件,而wordpress限定的文件大小只有8MB,那么如何在WP博客上上传文件,而且文件大小不受限制呢?

方法很简单,只需要3步就可以增加wordpress文件上传大小的设置:

首先,我们打开FTP进入wordpress博客站点的根目录,找到一个名为phpini文件,下载到我们的电脑桌面上,用DreamWeaver打开文件后加入下面2行代码,

post_max_size = 20M

upload_max_filesize = 20M

然后我们把这个文件更名为php5ini。

请注意,上面我控制上传文件大小和文章大小为20M,你可以根据你自己的需要设置上限。

下一步我们打开文件wp-configphp文件,看到这个是不是很熟悉?这个文件就在你的wordpress目录下,我们以前安装wordpress就是编辑的这个配置文件,现在我们需要再给它加上一段代码来完成文件上传大小的设置,

define('WP_MEMORY_LIMIT', '64M');

注意请在保存前把编码更改为博客默认的编码,例如我的编码是UTF-8,如果不修改的话就会出现乱码甚至打不开的问题。

最后一步,保存上面2个文件,一个是php5ini,另一个是wp-configphp,然后在FTP上删除phpini,上传这2个文件,大功告成!刷新一下你的wordpress后台,你会发现上传文件大小已经变更为你设置的大小。

您好,我是互城网络的小王。很高兴为您解答!

IIS 6 出于安全考虑, 默认最大请求是200K(也即最大提交数据限额为200KByte,204800Byte)。(在 IIS 60 之前的版本中无此限制)

解决办法:

先打开Internet 信息服务(IIS)管理器

(本地计算机 )---- 属性 ----允许直接编辑配置数据库(N)

一定要勾先“允许直接编辑配置数据库(N)”

然后在服务里关闭iis admin service服务

找到windows\system32\inesrv\下的metabasexml,

用计事本打开metabasexml,找到ASPMaxRequestEntityAllowed 把他修改为需要的值,默认为204800,即200K

把它修改为51200000(50M) 您需要多大就改多大

然后重启iis admin service服务

先试试,不行再问。

我司双线机房 独立服务器托管 20M带宽独享 7800元/年 。无与伦比的价格+快速稳定的线路+优质的售后服务。让您以后永远放心! 互城网络 ICD业务部 孙行者

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 如何解决nginx上传大文件的限制

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情