【问题标题】:ngnix + gunicorn throws truncated response bodynginx + gunicorn 抛出截断的响应体
【发布时间】:2015-04-28 05:15:33
【问题描述】:

我通过一些 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

【问题讨论】:

    标签: django nginx gunicorn


    【解决方案1】:

    嗯...我找到了一个相关的问题here,我在配置文件中添加了proxy_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 对象时遇到过类似的问题,而且效果很好。此修复程序立即纠正了问题!
    猜你喜欢
    • 2016-07-13
    • 1970-01-01
    • 1970-01-01
    • 2021-12-27
    • 2015-04-27
    • 2013-03-02
    • 2014-05-15
    • 2012-10-24
    • 1970-01-01
    相关资源
    最近更新 更多