今天遇到413这个坑,翻了半天的网页,终于解决。
要解决上传大文件,遭遇 413 Request Entity Too Large 错误这个问题,因为我服务器配置是Nginx+PHP+IIS7.5,所以需要分别修改 Nginx、Php、IIS的相关配置。
以下按上传500M的文件的需求来进行修改。
1.修改Nginx配置文件
这点估计但凡做了一点搜索尝试的同学都知道了,具体来说
打开 nginx\conf\nginx.conf 这个文件
添加一行 client_max_body_size ,将其数值加大
需注意,若你有加 client_header_buffer_size 这个设置,那么
client_max_body_size 须 > client_header_buffer_size 的值
http {
include mime.types;
default_type application/octet-stream;
server_names_hash_bucket_size 64;
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#access_log logs/access.log main;
client_header_buffer_size 248m;
# 将Nginx代理的所有请求实体的大小限制为512m
client_max_body_size 512m;
修改好后,重启Nginx,使其生效。 nginx -s reload 其实是可以的
2. 修改PHP的配置文件
若你使用PHP,需要修改Php.ini文件
找到:max_execution_time ,脚本运行的最长时间,单位秒,将其加大:
max_execution_time = 360
找到:max_input_time ,脚本可以消耗的时间,单位也是秒,将其加大:
max_input_time = 360
找到:memory_limit ,脚本运行最大消耗的内存,根据你的需求更改数值,将其加大:
memory_limit = 512M
找到:post_max_size ,表单提交最大数据为 8M,此项不是限制上传单个文件的大小,而是针对整个表单的提交数据进行限制的。限制范围包括表单提交的所有内容,将其加大:
post_max_size = 512M
找到:upload_max_filesize,上载文件的最大许可大小 ,将其加大:
upload_max_filesize = 512M
修改好后,重启IIS 的程序池或 Apache,使其生效。
3. 修改IIS的配置文件
若你使用IIS服务器,那么你需要修改两处。
1、windows目录下,\System32\inetsrv\config\applicationHost.config 文件
搜索 requestFiltering 这个段,添加一行
<requestLimits maxAllowedContentLength="536870912" /> 此处值设为512*1024*1024=536870912,即512M
<requestFiltering>
<fileExtensions allowUnlisted="true" applyToWebDAV="true" />
<verbs allowUnlisted="true" applyToWebDAV="true" />
<requestLimits maxAllowedContentLength="536870912" />
<hiddenSegments applyToWebDAV="true">
<add segment="web.config" />
</hiddenSegments>
</requestFiltering>
2、windows目录下,\System32\inetsrv\config\schema\IIS_schema.xml 文件
搜索 maxAllowedContentLength 这个段,默认是30M
同理,将这个值调整为 536870912 ,即 512M
<attribute name="maxAllowedContentLength" type="uint" defaultValue="536870912" />
修改IIS_schema.xml 文件,稍为麻烦一点,因为系统有保护,不能直接修改
按下图所示操作


然后一路点“确定”,退出,这个文件就可以保存修改了。
修改好后,重启IIS,使其生效
4. 修改Apache的配置文件
若你是用Apache环境,需要修改位于Apahce目录下的httpd.conf 文件
添加下面内容
LimitRequestBody 536870912 ,改好后重新启动apache
以上实操通过!
当遇到413 Request Entity Too Large错误,可按照以下步骤解决:1) 修改Nginx配置,增加client_max_body_size;2) 更新PHP的php.ini文件,调整max_execution_time, max_input_time, memory_limit, post_max_size, upload_max_filesize;3) 调整IIS的applicationHost.config和IIS_schema.xml,增大requestLimits maxAllowedContentLength;4) 若使用Apache,修改httpd.conf的LimitRequestBody。确保重启相应服务使改动生效。"
124217222,5804617,Verilog奇偶校验实现,"['Verilog', '数字IC', '硬件描述语言', '校招', '逻辑设计']

2826

被折叠的 条评论
为什么被折叠?



