nginx - nginx 返回部分响应
问题描述
拥有带有反向代理配置的 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 块,导致等待额外的数据
解决方案
最后 - 以下设置似乎可以解决问题
proxy_buffering off;
proxy_cache off;
proxy_http_version 1.1;
推荐阅读
- java - 如何在折叠工具栏布局中制作这样的折叠卡片视图?
- assembly - 解释引导扇区汇编代码
- javascript - 打字稿只有奇数类型
- python - 读取 igraph 和 NetworkX 中缺少数据的 GML 文件时出错
- macos - 定期运行远程备份
- pine-script - 策略订单 - 无法对某些资产使用小数订单数量(FTX 上的 SOLUSD)
- dropzone - Dropzone uploadprogress 进度在大文件加载前立即 100
- python - 如何让 Snakemake 在确定哪些输入文件已更改时忽略更新的文件?
- python - 迭代元组中的元素(Python)
- node.js - Node js使用代理重定向来自客户端的请求