nginx反代tornado返回结果被截断

2018-07-07 0 条评论 470 次阅读 0 人点赞

问题复现:

curl -vvv https://xxx.com/foo?a=xxx的时候由于数据量比较大但会的结果会被截断.提示: transfer closed with bytes remaining to read服务端的tornado的log提示已经正常返回.
curl -vvv http://xxx.com:8001/foo?a=xxx的时候是正常返回.没有被截断

nginx+tornado结构如下:

  • nginx 反代tornado的8001端口具体代码如下:
server{
    listen 443 ssl;
    server_name  xxx.com;
    ssl on;
    ssl_certificate server_name.crt;
    ssl_certificate_key  server_name.key;
    location /a{
                proxy_pass http://xxx.com:8001; #此处是tornado的端口
        }
} 

  • torrnado仅作为api提供者.问题不出现在这,不必描述.

问题解决:
有上述复现条件可推断出问题出现在nginx反代的过程中. 返回的结果大小为47k处被截断(一共大于50k) 由nginx 文档得出: 反代默认缓存40k并且是打开状态

解决方法 关闭缓存或者加大缓存空间.

加大空间:

        proxy_buffering on;
        proxy_buffer_size 99999k;
        proxy_buffers 100  99999k;#比较猥琐...

关闭缓存:

proxy_buffering off;

TestSmirk

这个人太懒什么东西都没留下

文章评论(0)