我有一个AngularJS Web应用程序向Puma服务器中运行的Rails API发送请求。
我在我的美洲狮错误日志中每天看到一次或两次此错误:
2015-02-26 23:26:41 +0000: HTTP parse error, malformed request (): #<Puma::HttpParserError: Invalid HTTP format, parsing fails.>
2015-02-26 23:26:41 +0000: ENV: {"rack.version"=>[1, 2], "rack.errors"=>#<File:/home/ubuntu/env/production/www/yanpyapi/log/puma.stderr.log>, "rack.multithread"=>true, "rack.multiprocess"=>false, "rack.run_once"=>false, "SCRIPT_NAME"=>"", "CONTENT_TYPE"=>"text/plain", "QUERY_STRING"=>"", "SERVER_PROTOCOL"=>"HTTP/1.1", "SERVER_SOFTWARE"=>"2.10.1", "GATEWAY_INTERFACE"=>"CGI/1.2"}
我想我的代码中有错误。不确定。有什么方法可以确定在哪里?
答案 0 :(得分:4)
可能是你在某处使用ssl。在我的例子中,我使用http://host.com(unsecure)和wss(安全),它给了我这个错误。当它们都匹配时没有错误。所以将它改为http和ws或https和wss。希望这是你的情况。
答案 1 :(得分:1)
有什么方法可以确定在哪里?
Fork puma
存储库并向methods called parse_error
添加其他日志记录(尝试记录所有请求正文)。使用这种方式,您可以找到导致问题的请求并进行调查。