发布特定SVG字符串时,Apache和mod_wsgi返回504错误

时间:2015-06-09 21:26:04

标签: apache http mod-wsgi http-status-code-504

当我发布特定的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 X.X.X.X] (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 X.X.X.X] mod_wsgi (pid=19252): Exception occurred processing WSGI script '/var/www/ade/src/interface.wsgi'.
[Tue Jun 09 14:27:26 2015] [error] [client X.X.X.X] IOError: failed to write data

有意思的是,在我发出请求之后,在发布数据上传完成之前,错误会在错误日志中出现错误。

以下是我们的版本号:

Ubunut 12.04
Apache/2.2.22 (Ubuntu) 
mod_ssl/2.2.22 
OpenSSL/1.0.1 
mod_wsgi/3.3 
Python/2.7.3

可能导致此问题的任何线索?

更新:我们将mod_wsgi更新为4.4.12,并在error.log中更改了错误消息

[Wed Jun 10 05:48:35 2015] [error] [client X.X.X.X] mod_wsgi (pid=5019): Request data read error when proxying data to daemon process: Connection reset by peer., referer: http://devade.annalect.com/

这可能与Web服务器前面的AWS负载均衡器有关。将尝试就此进行调查。 http://docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/ts-elb-error-message.html#ts-elb-errorcodes-http504

0 个答案:

没有答案