joa*_*nrb 5 django nginx uwsgi
我有一个 Django 视图,它以随机大小(20 个字符到 30k 个字符之间)处理 POST 请求。此 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"
Run Code Online (Sandbox Code Playgroud)
经过一些测试,我设法用一个大的主体请求重新创建了这个调用。
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>
Run Code Online (Sandbox Code Playgroud)
似乎发生的是 Django 检查会话无效并在客户端完成传递正文之前返回响应(403)。
如果我是对的,有没有办法让 Django 在检查标头而不是 Nginx 后发送 100 状态?
如果没有,有没有比在检查标题之前等待正文更优雅的解决方案?
归档时间: |
|
查看次数: |
986 次 |
最近记录: |