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

Azure应用网关后Grafana跨域问题及替代方案咨询

解决Grafana通过Azure Application Gateway公网访问时的"origin not allowed"跨域问题

可行解决方案

1. 补充Grafana核心环境变量

现有配置缺少CORS允许源和信任代理的关键设置,添加以下环境变量:

  • GF_SERVER_CORS_ALLOW_ORIGINS:指定允许的跨域源,例如 'https://[publicdomain].com',若需支持子域可设为 'https://*.publicdomain.com'
  • GF_SERVER_TRUSTED_PROXIES:将Azure Application Gateway所在的VNET IP段加入,比如 '10.0.0.0/24'(根据实际网关IP范围调整),让Grafana信任网关转发的请求,正确识别客户端真实Origin

完整环境变量示例:

{  
  "name": "GF_SERVER_ROOT_URL",
  "value": "https://[publicdomain].com"
},
{
  "name": "GF_LIVE_ALLOWED_ORIGINS",
  "value": "*,https://*.[publicdomain].com,wss://*.[publicdomain].com,http://*.[publicdomain].com"
},
{  
  "name": "GF_SERVER_DOMAIN",
  "value": "[publicdomain].com"
},
{
  "name": "GF_SERVER_CORS_ALLOW_ORIGINS",
  "value": "https://[publicdomain].com"
},
{
  "name": "GF_SERVER_TRUSTED_PROXIES",
  "value": "10.0.0.0/24"
}

2. 配置Application Gateway转发关键请求头

在网关的后端HTTP设置中,保留客户端发送的Origin头,同时添加自定义转发头,让Grafana获取真实访问信息:

  • 保持现有"Pick host name from backend target"配置(确保指向内部域名)
  • 添加自定义请求头:
    • 名称:X-Forwarded-Host,值:[publicdomain].com
    • 名称:X-Forwarded-Proto,值:https
      确保网关规则不会修改或移除Origin头,原样转发至Grafana容器。

3. 挂载自定义Grafana配置文件(环境变量不生效时备选)

若环境变量方式未解决问题,可挂载自定义grafana.ini文件到Container Apps的/etc/grafana路径,明确配置参数:

[server]
root_url = https://[publicdomain].com
domain = [publicdomain].com
cors_allow_origins = https://[publicdomain].com
trusted_proxies = 10.0.0.0/24
serve_from_sub_path = false

[live]
allowed_origins = *,https://*.[publicdomain].com,wss://*.[publicdomain].com,http://*.[publicdomain].com

可通过Azure Files或Azure Secret挂载该配置文件,覆盖默认配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 09:36:15