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

通过Azure应用网关访问WSO2 API Manager门户报资源未找到的配置咨询

WSO2 API Manager 4.0.0 搭配Azure应用网关访问异常的解决配置

当通过Azure应用网关访问WSO2 APIM出现“requested resource not found”时,核心原因是APIM未正确识别外部请求的域名和转发头,必须做以下特定配置:

1. 配置APIM的外部访问根URL

WSO2 APIM的管理门户(Publisher、Devportal等)依赖external_url生成内部链接和重定向地址,通过Helm部署时,要在部署配置里指定外部域名:

  • 在values.yaml中添加:
wso2apim:
  configs:
    deployment:
      externalUrl: "https://external.sp.com"
  • 或者部署时用命令行参数:
helm upgrade --install apim wso2/wso2am --set wso2apim.configs.deployment.externalUrl=https://external.sp.com

这个配置会覆盖APIM内部的carbon.xml和门户配置,让应用网关转发的请求能匹配正确路由。

2. 调整Azure应用网关的路由规则

确保网关的路由配置没有截断请求路径:

  • 路径匹配规则设为/*(或单独配置/publisher/*、/devportal/*等),保证完整路径传递到后端Ingress。
  • 后端池指向AKS的Ingress服务IP,健康检查路径用APIM的健康端点/healthcheck,确保网关能正确识别后端状态。
  • 若外部和内部路径有前缀差异,开启路径重写规则,保持请求路径一致。

3. 开启Ingress的转发头支持

Azure应用网关会传递X-Forwarded-Host、X-Forwarded-Proto等头,需要让Ingress控制器把这些头传给APIM,在Helm的values.yaml中配置Ingress注解:

ingress:
  enabled: true
  annotations:
    nginx.ingress.kubernetes.io/use-forwarded-headers: "true"
    nginx.ingress.kubernetes.io/x-forwarded-proto: "https"

这样APIM就能基于外部域名生成正确的响应,不会跳转到内部Ingress的地址。

4. 验证APIM内部配置

登录内部可正常访问的Publisher控制台,检查Settings > Configurations:

  • 确认Gateway Environments中的端点地址已指向外部域名https://external.sp.com。
  • 检查Portal Configurations里的回调URL是否正确,若未自动同步,手动更新为外部域名。

排查小技巧

  • 查看应用网关的请求日志,确认请求是否完整转发到Ingress,路径是否未被修改。
  • 用curl测试外部URL,看响应头的Location是否指向外部域名:
curl -v https://external.sp.com/publisher

如果Location还是内部Ingress的地址,说明externalUrl配置未生效,需要重新部署APIM并确认配置已加载。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 06:05:27