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

Kong Ingress配置问题:ASP.NET Core MVC路由异常及配置方案咨询

Kong Ingress 适配ASP.NET Core 6 MVC的路由配置方案

问题根源分析

你遇到的{"message": "An invalid response was received from the upstream server"}错误,核心原因是Kong与上游ASP.NET Core应用的请求转发逻辑不匹配,要么是Ingress配置细节缺失,要么是应用未正确处理反向代理请求。

正确的Ingress配置

以下是实现https://res0ingresskong.resources.root.gc.local/onename路由至应用根路径/的完整YAML配置:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: aspnetcore-app-ingress
  annotations:
    konghq.com/strip-path: "true"
    konghq.com/preserve-host: "false"
    # 必须指定上游通信协议,避免Kong与应用的协议不匹配
    konghq.com/protocol: "http" # 若应用用HTTPS则改为https,根据实际服务端口调整
spec:
  ingressClassName: kong
  rules:
  - host: res0ingresskong.resources.root.gc.local
    http:
      paths:
      - path: /onename
        pathType: Prefix
        backend:
          service:
            name: your-aspnetcore-service # 替换为你的应用服务名称
            port:
              number: 80 # 替换为应用服务暴露的端口

核心配置项说明

  • konghq.com/strip-path: "true":强制Kong移除请求路径中的/onename前缀,转发给应用的路径变为/,匹配应用的基准路径。
  • pathType: Prefix:明确采用前缀匹配规则,确保所有/onename开头的请求都被正确路由。
  • konghq.com/protocol:指定Kong与上游服务的通信协议,这是容易忽略的点,协议不匹配会直接导致无法获取有效响应。

应用侧必要调整(若配置后仍报错)

如果Ingress配置完成后还是报错,需要修改ASP.NET Core的反向代理支持:
在Program.cs中添加转发头处理逻辑,确保应用能识别Kong转发的请求:

var builder = WebApplication.CreateBuilder(args);

// 配置反向代理转发头
builder.Services.Configure<ForwardedHeadersOptions>(options =>
{
    options.ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto;
    // 添加Kong代理的IP段到可信列表,替换为你的集群内Kong实际IP段
    options.KnownProxies.Add(IPAddress.Parse("10.0.0.0/8"));
});

// 注册MVC服务等...

var app = builder.Build();

// 转发头中间件必须放在路由之前
app.UseForwardedHeaders();

// 其他中间件(路由、授权等)...

app.MapControllerRoute(
    name: "default",
    pattern: "{controller=Home}/{action=Index}/{id?}");

app.Run();

同时确保应用内所有链接都使用相对路径,避免硬编码绝对路径导致的资源加载失败。

验证步骤

  • 应用配置:kubectl apply -f [你的Ingress配置文件名].yaml
  • 检查Ingress状态:kubectl get ingress,确认ADDRESS字段有值且状态正常
  • 测试请求:curl -v https://res0ingresskong.resources.root.gc.local/onename,验证是否返回应用正常响应

内容的提问来源于stack exchange,提问作者stefano de simone

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 07:16:17