You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Nginx代理Windows Server 2016 IIS站点出现NS_ERROR_NET_PARTIAL_TRANSFER部分传输问题求助

Nginx代理Windows Server 2016 IIS站点出现NS_ERROR_NET_PARTIAL_TRANSFER部分传输问题求助

你好,针对你遇到的这个Nginx代理Windows Server 2016 IIS站点出现部分传输失败的问题,我结合类似的排查经验整理了几个可能的解决方向,你可以逐一尝试:

首先先明确下已确认的问题现象,方便后续排查对比:

通过Nginx代理访问Windows Server 2016 Datacenter的IIS站点时,图片、main.js等资源会随机加载失败,Firefox控制台报NS_ERROR_NET_PARTIAL_TRANSFER;直接访问服务器IP则正常,换成Windows 10的IIS(同Server 2016主机上的VM)或Windows Server 2019/2022各版本都无此问题,已尝试调整Nginx配置、关闭Server 2016的防火墙/Defender、解除IIS限制,均无效。

1. 调整Nginx的连接超时与缓冲区配置

NS_ERROR_NET_PARTIAL_TRANSFER通常和连接中断、数据传输不完整有关,大概率是Nginx的超时设置过短或缓冲区不足导致传输截断。可以在代理的location块中添加或修改以下配置:

proxy_connect_timeout 60s;
proxy_send_timeout 60s;
proxy_read_timeout 60s;
proxy_buffering on;
proxy_buffer_size 16k;
proxy_buffers 4 64k;
proxy_busy_buffers_size 128k;

如果站点有大体积静态资源(比如高清图片),可以适当调大proxy_buffers的数值,避免缓冲区不够导致数据截断。

2. 检查IIS的内核缓存与压缩设置

Windows Server 2016的IIS默认配置和Win10/新Server版本存在差异,部分内核级缓存或压缩选项可能和Nginx交互冲突:

  • 打开IIS管理器,找到目标站点的输出缓存,尝试禁用内核模式缓存后测试;
  • 暂时关闭IIS的静态内容压缩(Gzip/Deflate),避免Nginx和IIS同时压缩导致数据格式异常;
  • 检查IIS的请求筛选,确认最大允许请求长度设置足够大,不会截断大资源文件。

3. 调整Windows Server 2016的TCP/IP堆栈参数

Server 2016默认的TCP自动调优配置可能和Nginx的连接机制不兼容,尝试通过命令调整:
以管理员权限打开命令提示符,执行以下命令:

netsh int tcp set global autotuninglevel=normal
netsh int tcp set global rss=enabled

执行完成后重启服务器,再测试代理访问是否正常。

4. 启用Nginx调试日志定位根因

如果以上方法都无效,建议开启Nginx的详细调试日志,捕捉传输过程中的异常细节:
在Nginx配置的http块中添加:

error_log /var/log/nginx/error_debug.log debug;

触发问题后查看日志,重点关注是否有连接中断、超时或IIS提前关闭连接的记录,这能帮你精准定位问题出在代理端还是后端IIS。

5. 尝试禁用Nginx的HTTP/2支持

如果你的Nginx配置了HTTP/2(即listen 443 ssl http2;),可能和Windows Server 2016的IIS存在兼容性问题,暂时注释掉http2参数,改用HTTP/1.1测试,看是否解决资源加载失败的问题。

备注:内容来源于stack exchange,提问作者Dylan D

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.20 09:24:28