【发布时间】:2013-09-18 11:10:00
【问题描述】:
我正在使用代理脚本 (located here),它用于两步结帐(客户将其帐单信息放在第 1 步,点击“下一步”,然后将付款信息放在第 2 步)。
当他们在步骤 1 中单击“下一步”时,代理脚本会接受带有输入数据的 PUT 请求,然后将所有数据发送到第 3 方服务(购物车)。
问题是,在第 1 步单击提交时,我收到 413 Request entity too large 错误。
我花了很多时间确保 Nginx 配置正确(确实如此)。这是 PHP 脚本中的某些东西,它以某种方式错误地触发了 413。我不是 PHP 专家,但这是我唯一能想到的。
以下是我认为不是 Nginx 配置本身的一些原因:
- 请求只有10kb左右
- 如果我删除 PHP 文件中的所有内容,
PUT的数据就完美了。只是上面的这个脚本以某种方式触发了它。 - 我已经设置了所有必要的 PHP 变量(我相信其中有 4 个)。全部设置为
128M -
client_max_body_size正确设置为32M
这是我知道它不是 3rd 方服务器的原因
- 在 apache 上运行良好
- 许多其他人(在 apache 上)正在成功使用它
非常简单的一键下载自己试试(如果你喜欢的话)
如果你想修改它,下载 zip,然后上传到 nginx 服务器:
您无需进行任何更改。只需上传,访问trial-page1.html 并点击Order Now 大按钮。您将看到它将413 错误记录到控制台。
我什至不知道如何调试它,我认为这是 curl 的使用方式存在某种问题?
【问题讨论】:
-
非常懒惰的答案 - 你检查了 nginx.conf client_max_body_size 值吗? link
-
是的,正如我上面所说,它位于
32M。 :// -
client_max_body_size 32M;应该放在 server {} 块内和 location {} 块外。让我们确定一下。如果没问题,请提供您的 php.ini 配置,您告诉您将其全部设置为 128M。
标签: php curl nginx http-status-code-413