nginx作为反向代理服务器,小文件上传可以,大文件上传会报413,400,414(如 413 request Entity too Large)等状态码,这是因为请求长度超过了nginx默认的缓存大小和最大客户端最大请求大小。





针对post请求解决办法:

修改nginx.conf里面的几个相关的配置参数

client_body_buffer_size 10m(配置请求体缓存区大小, 不配的话)

client_max_body_size 20m(设置客户端请求体最大值)

client_body_temp_path /data/temp (设置临时文件存放路径。只有当上传的请求体超出缓存区大小时,才会写到临时文件中,注意临时路径要有写入权限)





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





针对get请求解决办法:

针对get请求,我们可以通过修改另外两个配置来解决请求串超长的问题:

client_header_buffer_size 语法:client_header_buffer_size size 默认值:1k 使用字段:http, server 这个指令指定客户端请求的http头部缓冲区大小绝大多数情况下一个头部请求的大小不会大于1k不过如果有 来自于wap客户端的较大的cookie它可能会大于1k,Nginx将分配给它一个更大的缓冲区,这个值可以在 large_client_header_buffers里面设置。 large_client_header_buffers 语法:large_client_header_buffers number size 默认值:large_client_header_buffers 4 4k/8k 使用字段:http, server 指令指定客户端请求的一些比较大的头文件到缓冲区的最大值,如果一个请求的URI大小超过这个值,服务 器将返回一个"Request URI too large" (414),同样,如果一个请求的头部字段大于这个值,服务器 将返回"Bad request" (400)。 缓冲区根据需求的不同是分开的。 默认一个缓冲区大小为操作系统中分页文件大小,通常是4k或8k,如果一个连接请求将状态转换为 keep-alive,这个缓冲区将被释放。



那么有人就会觉得奇怪了,为什么修改http header的大小就能解决get请求串过长的问题呢, 这就要从http协议的get请求说起了,其实GET提交,请求的数据会附在URL之后(就是把数据放置在 HTTP协议头中)。



大家看到没,其实get请求的参数就是存放在http header中的,所以修改header的大小限制 当然可以解决请求串过长的问题啦。此外还有给大家澄清一点啦,HTTP协议没有对传输的数据大小进行限 制,HTTP协议规范也没有对URL长度进行限制,我们日常生活中遇到的长度限制都是各个浏览器或者http 请求工具自己干的。




参考:http://www.51testing.com/html/13/377613-805851.html

nginx解决超长请求串(413 request Entity too Large错误解决办法)的更多相关文章

  1. Nginx出现“413 Request Entity Too Large”错误解决方法

    Nginx出现“413 Request Entity Too Large”错误解决方法 2011-03-25 13:49:55|  分类: 默认分类 |  标签:413  request  entit ...

  2. Nginx出现413 Request Entity Too Large错误解决方法

    Nginx出现的413 Request Entity Too Large错误,这个错误一般在上传文件的时候出现,打开nginx主配置文件nginx.conf,找到http{}段,添加 解决方法就是 打 ...

  3. Nginx 出现413 Request Entity Too Large 错误解决方法(上传大小限制)

    | 时间:2013-09-05 20:19:14 | 阅读数:485075 [导读] Nginx出现的413 Request Entity Too Large错误,这个错误一般在上传文件的时候出现,打 ...

  4. Nginx配置,413 Request Entity Too Large错误解决

    今天有同事找我,说图片上传之后,不知道去哪里了.分析了一下问题,找到原因之后做了处理,这里简要记录一下. 问题原因: 1.首先后台log并无错误信息: 2.捡查了一下浏览器,发现network中有报错 ...

  5. 上传文件报413 Request Entity Too Large错误解决办法

    产生这种原因是因为服务器限制了上传大小 1.nginx服务器的解决办法 修改nginx.conf的值就可以解决了 将以下代码粘贴到nginx.conf内 client_max_body_size 20 ...

  6. Nginx 出现413 Request Entity Too Large得解决方法

    Nginx 出现413 Request Entity Too Large得解决方法 默认情况下使用nginx反向代理上传超过2MB的文件,会报错413 Request Entity Too Large ...

  7. Nginx:413 Request Entity Too Large 的解决方法

    报错信息413 Request Entity Too Large 解决方法: (20M大小,自己调节,根据文件大小.)修改 php 的配置文件 /etc/php5/fpm/php.ini upload ...

  8. HTTP Error: 413 Request Entity Too Large的解决

    昨天在使用PHP的CURL调用另一个项目的API:A时,出现了HTTP Error: 413 Request Entity Too Large的错误.而调用另一个API:B则没有这个错误. A的API ...

  9. 【Azure 应用服务】PHP应用部署在App Service for Linux环境中,上传文件大于1MB时,遇见了413 Request Entity Too Large 错误的解决方法

    问题描述 在PHP项目部署在App Service后,上传文件如果大于1MB就会遇见 413 Request Entity Too Large 的问题. 问题解决 目前这个问题,首先需要分析应用所在的 ...

随机推荐

  1. SQL Server附加数据库拒绝访问错误解决方法

    今天在MsSQL里附加数据库时提示操作系统错误5(拒绝访问),这里我没给出了两个解决方案供大家解决问题. 方案一:切换登录方式 出现这种情况是由于用“混合验证方式”(SQL Server身份验证)登录 ...

  2. Ganglia3.1.7安装与配置(收录)

    一.所需要软件 二.安装过程     1.Ganglia运行平台的安装     2.Ganglia依赖库的安装     3.RRDTool的安装     4.Ganglia的安装 (包括使用yum方式 ...

  3. What to do when Enterprise Manager is not able to connect to the database instance (ORA-28001)

    摘自:http://dbtricks.com/?p=34 If you are trying to connect to the Oracle enterprise Manger and you ge ...

  4. 《Cracking the Coding Interview》读书笔记

    <Cracking the Coding Interview>是适合硅谷技术面试的一本面试指南,因为题目分类清晰,风格比较靠谱,所以广受推崇. 以下是我的读书笔记,基本都是每章的课后习题解 ...

  5. Qt QLabel 播放GIF动画

    很久以前用过,不过慢慢的不用了,就慢慢的忘记了,今天拾起来,记录一下,以后用的时候可以翻一下 QLabel播放GIF动画其实很简单 第一步,需要包含头文件,Qt播放GIF动画,我使用的是QMovie类 ...

  6. LeetCode 全解(bug free 训练)

    1.Two Sum Given an array of integers, return indices of the two numbers such that they add up to a s ...

  7. Toward Convolutional Blind Denoising of Real Photographs

    本文提出了一个针对真实图像的盲卷积去噪网络,增强了深度去噪模型的鲁棒性和实用性. 摘要 作者提出了一个 CBD-Net,由噪声估计子网络和去噪子网络两部分组成. 作者设计了一个更加真实的噪声模型,同时 ...

  8. 传输控制层协议TCP概述---抄书

    1.TCP的主要特点 TCP是TCP/IP体系中非常复杂的一个协议.下面介绍TCP的最主要的特点. (1)TCP是面向连接的运输层协议.也就是说,应用程序在使用TCP协议之前,必须先建立TCP连接.在 ...

  9. lintcode-62-搜索旋转排序数组

    62-搜索旋转排序数组 假设有一个排序的按未知的旋转轴旋转的数组(比如,0 1 2 4 5 6 7 可能成为4 5 6 7 0 1 2).给定一个目标值进行搜索,如果在数组中找到目标值返回数组中的索引 ...

  10. Java IO 之 RandomAccessFile 操作文件内容

    RandomAccessFile类实现对文件内容的随机读写 文件内容的随机操作,重难点在于字符操作,具体查看API package org.zln.io.file; import java.io.IO ...