我在 Nginx (1.6.2) 后面运行 Django 和 Gunicorn (19.6.0)。一切都运行正常,但有一个小问题。如果我发送一个 JSON 有效负载大于 10KB 的 POST 请求,并且 Django 回复了 500er,那么我net::ERR_INCOMPLETE_CHUNKED_ENCODING
在 Chrome 中会得到一个,并且响应为空,尽管 Django 发送了一个 JSON 字符串{"error":"some error description"}
。
Nginx 日志显示104: Connection reset by peer
:
如果 POST 请求的有效负载较小,我会得到预期的结果。如果我将相同的请求(同样带有较大的有效负载)直接发送到 gunicorn,则不会发生任何错误,并且我确实会得到预期的响应。
我的 Nginx 配置:
server {
listen 80 default_server;
server_name _;
client_max_body_size 10m;
location /static/ {
root /srv/yyyyy;
}
location /media/ {
root /srv/yyyyy;
}
# Proxy Pass to Gunicorn
location / {
include proxy_params;
proxy_pass http://unix:/srv/yyyyy/proxy_pass.sock;
}
}
我也在proxy_buffering off;
位置块中进行了测试,但结果仍然是相同的。