当我发布特定的 SVG 字符串时,Apache + mod_wsgi 中出现了奇怪的 504 错误。后端应用程序是 Python Flask,但似乎根本无法访问该应用程序。
以下是返回 504 错误的一个请求:
curl 'https://some.domain.com/api/export/png' --data 'svg=%22%3E%28style'
下面是另一个返回 200 的示例:
curl 'https://some.domain.com/api/export/png' --data 'svg=%22%3E%28styl'
不同之处在于我只从 POST 数据中删除了一个字符
SVG 数据被缩减为可能产生错误的最小数据。原始 SVG 字符串要大得多。
apache错误日志中出现的错误是:
[Tue Jun 09 14:27:26 2015] [error] [client 10.5.226.115] (104)Connection reset by peer: mod_wsgi (pid=19254): Unable to get bucket brigade for request., referer: https://some.domain.com/
[Tue Jun 09 14:27:26 2015] [error] [client 10.5.226.115] mod_wsgi (pid=19252): Exception occurred processing WSGI script '/var/www/ade/src/interface.wsgi'.
[Tue Jun 09 14:27:26 2015] [error] [client 10.5.226.115] IOError: failed to write data
有趣的是,在我发出请求之后,在帖子数据上传完成之前,错误日志中立即出现了错误。
以下是我们拥有的版本号:
Apache/2.2.22 (Ubuntu)
mod_ssl/2.2.22
OpenSSL/1.0.1
mod_wsgi/3.3
Python/2.7.3
有什么线索可以解释这是什么原因造成的吗?
答案1
查看您的 httpd.conf 文件并增加超时值。
Timeout 600
保存文件并重新启动 apache。