我的一位客户报告说,在使用我们的应用程序时看到413 HTTP错误。
我了解这是一个错误,提示内容太大:
413有效载荷过大
但是,客户端试图发送一个很小的文件(12Kb以下)。不仅如此,一次又一次地尝试,我们没有遇到413错误。我们无法复制该错误。
我没有安装modsecurity。我没有使用PHP(我的代码是C ++)。
我的CGI实际上告诉我,Apache与Apache之间的连接已中断,因此我可以忽略该错误是由我的代码生成的。它必须在Apache2的一端。
在寻找可能导致问题的原因时,我发现了几件东西,没有一件适合我们的环境。
我确定该计算机上没有modsecurity或PHP。
URL非常短(原始63个字符),日志清楚地表明使用了POST。这里有Apache2日志:
finball.m2osw.com:443 50.255.47.1--[03 / Oct / 2018:22:10:59 +0000]“ POST / finball / invoice / finball1-56149 HTTP / 1.1” 413345“ www.example .com“” https://www.example.com/finball/invoice/finball1-56149?a=edit“” Mozilla / 5.0(Windows NT 6.1; rv:62.0)Gecko / 20100101 Firefox / 62.0“ TLSv1.2 ECDHE-RSA-AES256-GCM-SHA384
我的应用程序日志清楚地表明套接字已关闭(在这种情况下,套接字为stdin,是Apache2和CGI之间的管道):
2018/10/03 22:10:59 finball1 Snap [22975]:致命错误:快照子进程:从服务器子进程中的套接字读取环境时发生错误(缺少第一个POST边界。) 。 (503服务不可用:网络连接不稳定)(在函数“ die()”中)(snap_child.cpp:6845)
我们期待着POST
数据,但它永远不会到达。然后,我的应用程序返回503错误。但是,正如我们在Apache日志中看到的那样,客户端改为收到413。
还有什么会导致Apache2返回413 HTTP错误代码?