【发布时间】: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 块导致等待额外的数据
【问题讨论】: