【问题标题】:nginx returns partial responsenginx 返回部分响应
【发布时间】:2019-02-22 10:45:13
【问题描述】:

拥有带有反向代理配置的 NGINX Plus:

upstream busgw_services_backend {
 server esbacc002:8281;
 server esbacc004:8281;

 keepalive 32;
 zone busgw_services_backend 32k;
}

server {
    listen      443 ssl;
    listen      80;
    server_name busgw-acc;

    # some ssl settings

    location / {
       proxy_pass http://busgw_services_backend;
       proxy_set_header Host   $host;
       proxy_set_header X-Forwarded-For $remote_addr;

       health_check interval=2s passes=1  fails=2 uri=/services/healthcheck match=match_ok ;
    }

    access_log  /var/log/nginx/access.log  main if=$abnormal;
    error_log   /var/log/nginx/error.log   warn;
}

通常这种配置效果很好。但是 - 我们有一个只返回部分响应的请求。

后端响应是一个 WSDL,在单个块中返回长度为 0x13c6 (5062) 字节的分块响应。 Nginx 仅返回 0xf7a (3962) 字节,然后无法产生额外的字节(或完成 0 块)

块大小有限制吗?

编辑:

禁用响应缓冲区导致返回整个响应(作为两个单独的块)

proxy_buffering off;

但是客户端没有收到最后的 0 块导致等待额外的数据

【问题讨论】:

    标签: nginx nginx-reverse-proxy


    【解决方案1】:

    最后 - 以下设置似乎可以解决问题

    proxy_buffering off;
    proxy_cache off;
    proxy_http_version 1.1;
    

    【讨论】:

      猜你喜欢
      • 2013-09-09
      • 2016-02-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-08
      • 2011-08-22
      • 2014-03-10
      • 1970-01-01
      相关资源
      最近更新 更多