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

Nginx反向代理Infinispan Console v13/v14的报错与性能问题排查求助

Nginx反向代理Infinispan Console问题排查方案

核心问题分析

日志报错upstream sent "Content-Length" and "Transfer-Encoding" headers at the same time是因为上游Infinispan服务返回的响应同时包含了这两个HTTP头,违反了HTTP规范;而控制台加载缓慢、无法完整加载,大概率和这个头冲突导致的请求异常,以及静态资源未优化、上游服务状态有关。

以下是具体排查方向:

1. 修复Nginx代理的头冲突问题

在Nginx的location /块中添加配置,强制忽略上游返回的Transfer-Encoding头,避免两个头同时存在:

proxy_ignore_headers Transfer-Encoding;

同时保留chunked_transfer_encoding off;配置,确保Nginx不使用分块传输,统一用Content-Length处理响应。

2. 检查上游Infinispan的响应头

直接请求上游节点的静态资源,验证是否确实返回了冲突的HTTP头:

curl -I http://10.0.1.194:11222/console/fonts/RedHatText-Regular.woff2

如果返回结果同时包含Content-Length和Transfer-Encoding,说明是Infinispan自身的问题:

  • 尝试升级Infinispan到v14的最新补丁版本,这类静态资源的头冲突问题可能已被官方修复;
  • 调整Infinispan的静态资源服务配置,禁用分块传输模式。

3. 优化静态资源的缓存与传输

控制台加载慢通常和静态资源重复请求有关,给字体、CSS、JS等静态资源单独配置缓存规则:

location ~* \.(woff2|css|js|png|svg)$ {
    proxy_pass http://infinispan;
    proxy_set_header Host $http_host;
    proxy_cache_valid 200 7d;  # 缓存有效资源7天
    proxy_ignore_headers Transfer-Encoding;  # 同步处理头冲突
    proxy_buffering on;
    proxy_buffer_size 8k;
    proxy_buffers 16 8k;
}

同时调整Nginx的代理缓冲区配置,提升响应传输效率,避免因缓冲区不足导致的加载延迟。

4. 验证上游Infinispan节点状态

  • 直接访问单个Infinispan节点的控制台(如http://10.0.1.194:11222/console),确认是否能正常加载所有资源,排除服务端自身的资源缺失或运行异常;
  • 如果单个节点正常,但负载均衡下异常,给upstream添加粘性会话配置,确保同一客户端固定到一个节点:
    upstream infinispan {
        ip_hash;
        server 10.0.1.194:11222;
        server 10.0.1.195:11222;
        server 10.0.1.196:11222;
    }
    

5. 修正异常的请求路径

从错误日志可见请求路径为GET /console /fonts/RedHatText-Regular.woff2 HTTP/1.1,其中/console与/fonts之间存在空格,属于非法路径:

  • 检查Infinispan Console的页面源码(如app.css),确认字体资源的引用路径是否存在空格错误;
  • 排查Nginx是否存在路径重写或解析异常,确保代理后的路径正确无误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 16:13:19