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

办公网内部分HTTP请求卡在pending状态的技术求助

办公网内Web请求时段性Pending问题排查求助

技术栈

  • VPS(Ubuntu 20)
  • ASP.NET Core、Identity Server 4
  • ReactJS
  • Nginx、Docker
  • 路由器:Mikrotik rb4011igs+5hacq2hnd-in

问题现象

Web应用部署在VPS的80端口,办公网外(移动网络、VPN等)访问完全正常,但办公网内发起请求时,部分请求会卡在pending状态,且该状态仅出现在工作时段(9:00-18:00),路由器防火墙无流量拦截规则。

已尝试但无效的操作

  • 禁用CORS
  • 用Traefik替代Nginx
  • 更换ISP
  • 更换VPS
  • 关闭杀毒软件、浏览器扩展、本地防火墙
  • 更换浏览器

可临时解决问题的操作

  • 绕过Nginx直接请求Web应用
  • 将Nginx容器外部端口从80改为55643(内部端口保持80)
  • 移除Nginx请求中的Bearer头

流量监控结果

通过客户端Wireshark和Nginx容器的tcpdump监控发现:

  • Nginx成功接收请求,Web应用处理后返回响应,但客户端无法接收完整响应
  • tcpdump显示响应会以数秒超时间隔多次发送给客户端
  • Wireshark显示响应为分段传输

请求状态截图

  • 成功请求:成功请求截图
  • Pending状态请求:pending状态请求截图

排查思路与解决方案

1. 办公网时段性流量瓶颈排查

  • 用Mikrotik自带工具/tool bandwidth-monitor检查工作时段办公网出口带宽占用,重点关注80端口的流量峰值,确认是否存在带宽饱和
  • 通过/ip firewall connection print查看工作时段80端口的并发连接数,排查是否有内部设备(如爬虫、批量业务工具)发起大量请求导致端口队列拥堵

2. Mikrotik路由器配置异常排查

  • 检查端口转发规则是否设置了connection-limit参数,工作时段连接数达到阈值后触发丢包
  • 调整TCP MSS匹配两端MTU:执行/ip firewall mangle add action=change-mss chain=forward new-mss=1460 protocol=tcp tcp-flags=syn,解决分段传输丢包问题
  • 优化TCP超时设置:执行/ip tcp set keepalive-time=30000 keepalive-interval=5000,避免长连接堆积影响新请求转发

3. Nginx TCP层配置优化

  • 调整代理缓冲区参数,适配分段传输场景:
    proxy_buffering on;
    proxy_buffer_size 4k;
    proxy_buffers 8 4k;
    
  • 开启TCP传输优化参数:
    tcp_nopush on;
    tcp_nodelay on;
    

4. Bearer头相关拦截排查

  • 排查办公网内上网行为管理设备,确认是否在工作时段开启了HTTP请求头审计规则,导致携带Bearer头的响应被延迟
  • 尝试在Nginx中对Bearer头进行Base64编码后传输,测试是否能绕过拦截

5. Docker网络模式测试

  • 将Nginx容器从bridge模式改为host模式部署,避免容器端口转发在高并发时出现瓶颈

内容的提问来源于stack exchange,提问作者kseen

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 01:10:32