Django ngnix+;gunicorn抛出截断响应体

Django ngnix+;gunicorn抛出截断响应体,django,nginx,gunicorn,Django,Nginx,Gunicorn,我通过一些url请求一些json数据,有时工作正常,有时不正常。。。我在这里查看了另一个相关提示,但它似乎建议不要通过中间件更改内容长度。。。我的json数据不完整,如下图所示: 我的应用程序nginx配置: server { listen 80; server_name myapp.com; access_log /var/log/nginx/myapp_access.log; error_log /var/log/nginx/myapp_error.log

我通过一些url请求一些json数据,有时工作正常,有时不正常。。。我在这里查看了另一个相关提示,但它似乎建议不要通过中间件更改内容长度。。。我的json数据不完整,如下图所示:

我的应用程序nginx配置:

server {
    listen 80;
    server_name myapp.com;

    access_log /var/log/nginx/myapp_access.log;
    error_log /var/log/nginx/myapp_error.log;

    location / {
    client_max_body_size 400M;
    proxy_read_timeout 120;
        proxy_connect_timeout 120;
    proxy_set_header Host $http_host; 
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Client-IP $remote_addr;
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_pass http://127.0.0.1:8888;
    }
}
gunicorn脚本:

#!/bin/bash
set -e
DJANGODIR=/home/ubuntu/apps/myapp

LOGFILE=/var/log/gunicorn/myapp.log
LOGDIR=$(dirname $LOGFILE)
NUM_WORKERS=3
# user/group to run as
USER=ubuntu
GROUP=ubuntu
cd /home/ubuntu/apps/myapp
source /home/ubuntu/.venv/myapp/bin/activate

export PYTHONPATH=$DJANGODIR:$PYTHONPATH

export NEW_RELIC_CONFIG_FILE=/home/ubuntu/newrelic/newrelic.ini

test -d $LOGDIR || mkdir -p $LOGDIR
exec /usr/local/bin/newrelic-admin run-program /home/ubuntu/.venv/myapp/bin/gunicorn_django -w $NUM_WORKERS \
  --user=$USER --group=$GROUP --log-level=debug \
  --log-file=$LOGFILE -b 127.0.0.1:8888 2>>$LOGFILE

嗯。。。我发现了一个相关的问题,我添加了
proxy\u buffering off到配置文件,这解决了我的案例中的问题

档案如下:

server {
    listen 80;
    server_name myapp.com;

    access_log /var/log/nginx/myapp_access.log;
    error_log /var/log/nginx/myapp_error.log;

    location / {
        client_max_body_size 400M;
        proxy_read_timeout 120;
        proxy_connect_timeout 120;
        proxy_set_header Host $http_host; 
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Client-IP $remote_addr;
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_pass http://127.0.0.1:8888;
        proxy_buffering off;
    }
}

谢谢你的研究。我在处理巨大的Bokeh JSON对象时也遇到过类似的问题,这一点工作正常。此修复程序立即纠正了问题!