我正在使用代理脚本(located here),这是一个两步结帐(客户将其结算信息放在第1步,点击“下一步”,然后将付款信息放在第2步)。
当他们在步骤1中点击“下一步”时,代理脚本接受带有输入数据的PUT
请求,然后将所有请求发送到第三方服务(购物车)。
问题是,在单击提交的第1步,我收到413 Request entity too large
错误。
我花了很多时间确保Nginx配置正确(肯定是)。它是PHP脚本中的某种东西,它以某种方式错误地触发413
。我不是PHP专家,但这是我唯一能想到的。
以下是我认为不是Nginx配置本身的一些原因:
PUT
的数据就完全正常了。上面只有这个脚本以某种方式触发它。128M
client_max_body_size
已正确设置为32M
以下是我知道它不是第三方服务器的原因
如果你想修补它,请下载zip,然后上传到nginx服务器:
您无需进行任何更改。只需上传,访问trial-page1.html
,然后点击大Order Now
按钮即可。您将看到它将413
错误记录到控制台。
我甚至不知道如何调试这个,我会认为这是curl
使用方式的某种问题?
答案 0 :(得分:1)
关于此问题没有特别的nginx特定内容 - 您要添加重复的标头...具体来说,两个Content-Length标头:一个位于foreach ($_SERVER as $i => $val) { ... }
循环中,一个显式位于$header[] = "Content-Type: " . $content_type;
this gist可以对您的脚本进行一些小修改;请注意,即使您愿意接受做PHP代理是一个好主意,它只会触及此脚本的错误表面......