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

能否将VM本地服务器的Apache Superset嵌入Cpanel的Flask应用?

Apache Superset仪表盘嵌入Cpanel Flask应用的可行性及实现参考

可行性结论

完全可以实现。Apache Superset原生支持仪表盘嵌入(iframe或官方SDK方式),只要你的VM服务器上的Superset服务能被Cpanel部署的Flask应用所在服务器访问(需配置VM防火墙、端口转发确保可达,同内网可直接用内网IP),就能在Flask应用中嵌入仪表盘,再通过Cpanel子域名对外展示。

核心实现步骤

1. 配置Superset允许嵌入

  • 编辑Superset的superset_config.py配置文件,添加/修改以下参数:
    ENABLE_EMBEDDING = True
    SESSION_COOKIE_SAMESITE = None  # 跨域场景下需设置,生产环境配合HTTPS使用
    SESSION_COOKIE_SECURE = True  # 生产环境强制HTTPS
    
  • 重启Superset服务生效。
  • 在Superset仪表盘的编辑页面,找到「Embed Dashboard」选项,生成带有效期的嵌入令牌或直接获取嵌入URL。

2. 在Flask应用中嵌入仪表盘

有两种常用方式:

  • iframe嵌入(快速实现):在Flask的HTML模板中直接添加iframe标签,指向Superset的嵌入URL:
    <iframe 
      src="http://你的VM服务器IP:8088/superset/embedded/你的仪表盘令牌/" 
      width="100%" 
      height="800px" 
      frameborder="0"
      allowfullscreen>
    </iframe>
    
  • 官方SDK嵌入(更灵活):在模板中引入Superset的嵌入SDK,通过令牌加载仪表盘:
    <script src="http://你的VM服务器IP:8088/superset/assets/embedded-sdk.js"></script>
    <div id="superset-dashboard"></div>
    <script>
      supersetEmbedDashboard({
        id: '你的仪表盘UUID',
        supersetDomain: 'http://你的VM服务器IP:8088',
        embedToken: '你的嵌入令牌',
        container: '#superset-dashboard',
        height: 800,
      });
    </script>
    

3. Cpanel端配置

  • 通过Cpanel的「Python Applications」工具部署你的Flask应用,绑定目标子域名(如embed.yourdomain.com)。
  • 测试子域名下的页面是否能正常加载Superset仪表盘,若出现跨域问题,需在Superset配置中添加CORS允许规则:
    CORS_OPTIONS = {
      "supports_credentials": True,
      "resources": ["*"],
      "origins": ["你的子域名地址"]
    }
    

参考文档

  • Apache Superset官方嵌入指南:官方文档的「Embedding Dashboards」章节,详细讲解嵌入配置、令牌生成、权限控制等内容。
  • Flask模板渲染文档:Flask官方文档「Template Rendering」部分,学习如何在Flask模板中整合外部HTML/JS资源。
  • Cpanel Python应用部署文档:Cpanel官方文档中「Python Applications」相关内容,了解Flask应用部署、子域名绑定的具体操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 11:37:15