当大请求主体和过期会话时,Nginx uWSGI Django返回502
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了当大请求主体和过期会话时,Nginx uWSGI Django返回502,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1392字,纯文字阅读大概需要2分钟。
内容图文
我有一个Django视图,处理具有随机大小的POST请求(在20 char到30k char之间).此API仅适用于注册用户,并使用会话标头进行验证. API适用于我的测试用例,但我注意到Nginx日志中有502个.错误日志显示此行::
2016/12/26 19:53:15 [error] 1048#0: *72 sendfile() failed (32: Broken pipe) while sending request to upstream, client: XXX.XXX.XXX.XXX, server: , request: "POST /api/v1/purchase HTTP/1.1", upstream: "uwsgi://unix:///opt/project/sockets/uwsgi.sock:", host: "staging.example.com"
经过一些测试,我设法用一个大的身体请求重新创建这个调用.
curl -XPOST https://staging.example.com/api/v1/purchase -H "Accept: application/json" -H "token: development-token" -H "session: bad-session" -i -d '{"receipt-data": "<25677 character string>"}'
HTTP/1.1 100 Continue
HTTP/1.1 502 Bad Gateway
Server: nginx/1.4.6 (Ubuntu)
Date: Mon, 26 Dec 2016 19:54:32 GMT
Content-Type: text/html
Content-Length: 181
Connection: keep-alive
<html>
<head><title>502 Bad Gateway</title></head>
<body bgcolor="white">
<center><h1>502 Bad Gateway</h1></center>
<hr><center>nginx/1.4.6 (Ubuntu)</center>
</body>
</html>
似乎发生的事情是Django检查会话无效并在客户端完成传递正文之前返回响应(403).
如果我是正确的,有没有办法让Django在检查标题而不是Nginx后发送100状态?
如果没有,在检查标题之前是否有比等待身体更优雅的解决方案?
解决方法:
我找到了一个statement添加HTTP头连接:keep-alive到客户端应该解决这个问题.我稍后会验证它,但已在此处发布,希望它能帮助某人.
内容总结
以上是互联网集市为您收集整理的当大请求主体和过期会话时,Nginx uWSGI Django返回502全部内容,希望文章能够帮你解决当大请求主体和过期会话时,Nginx uWSGI Django返回502所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。