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

Grafana部署于IIS:升级至V9后遇Origin Not Allowed问题求助

解决Grafana 9升级后IIS反向代理下的"Origin not allowed"问题

1. 检查并更新Grafana配置文件(grafana.ini)

找到[server]区块,确保配置匹配你的部署场景:

  • domain = 你的IIS访问域名(例如grafana.yourcompany.com)
  • root_url = %(protocol)s://%(domain)s/(若使用子路径部署,比如/grafana,需改为%(protocol)s://%(domain)s/grafana/)
  • serve_from_sub_path = true(子路径部署时必须开启)
  • 新增或调整CORS相关配置:
    [security]
    allow_embedding = true
    cors_allow_origins = https://你的IIS域名,http://你的IIS域名
    
    注意:cors_allow_origins需填写用户实际访问Grafana的前端域名,多个域名用逗号分隔。

2. 修正IIS URL Rewrite反向代理规则

确保规则正确传递关键请求头,让Grafana能识别真实请求源:

  • 打开IIS管理器,进入目标站点的URL Rewrite规则编辑界面
  • 在服务器变量中添加以下变量:
    • HTTP_X_FORWARDED_PROTO:值设为{HTTPS}(HTTPS站点自动映射为https,HTTP则为http)
    • HTTP_X_FORWARDED_HOST:值设为{HTTP_HOST}
  • 确保规则条件中未过滤Origin请求头
  • 示例规则XML片段:
    <rule name="ReverseProxyToGrafana" stopProcessing="true">
      <match url="(.*)" />
      <action type="Rewrite" url="http://localhost:3000/{R:1}" />
      <serverVariables>
        <set name="HTTP_X_FORWARDED_PROTO" value="{HTTPS}" />
        <set name="HTTP_X_FORWARDED_HOST" value="{HTTP_HOST}" />
      </serverVariables>
    </rule>
    

3. 补充IIS CORS配置(若仍有问题)

如果上述配置后跨域警告未消失,可安装IIS CORS Module,并在站点web.config中添加:

<cors enabled="true">
  <add origin="https://你的IIS域名" allowCredentials="true">
    <allowHeaders allowAllRequestedHeaders="true" />
    <allowMethods>
      <add method="GET" />
      <add method="POST" />
      <add method="PUT" />
      <add method="DELETE" />
    </allowMethods>
  </add>
</cors>

4. 重启服务生效

  • 重启Grafana服务
  • 重启IIS站点或整个IIS服务

问题核心原因

Grafana 9相比v8大幅强化了跨域请求的校验逻辑,严格验证Origin头与配置允许源的匹配性,同时要求反向代理必须正确传递X-Forwarded-*系列头,让Grafana能准确识别客户端的真实请求来源和协议。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 09:55:21