TT Bigdata TT Bigdata
首页
  • 部署专题

    • 常规安装
    • 一键部署
  • 组件专题

    • 安装指导
    • 魔改分享
  • 高阶玩法

    • 实战 Kerberos
    • 实战 Ranger
  • 版本专题

    • 更新说明
    • BUG临时处理
  • 实验室

    • VIEW插件
    • JIRA速查
  • Ambari-Env

    • 环境准备
    • 开始使用
  • 二开指导

    • 前端开发
    • 后端开发
  • 组件编译

    • 专区—Ambari
    • 专区—Bigtop-官方组件
    • 专区—Bigtop-扩展组件
  • 报错解决

    • 专区—Ambari
    • 专区—Bigtop
  • 其他技巧

    • APT仓库增量更新
    • Maven镜像加速
    • Gradle镜像加速
    • Bower镜像加速
    • 虚拟环境思路
    • R环境安装+一键安装脚本
    • Ivy配置私有镜像仓库
    • Node.js 多版本共存方案
    • Ambari Web本地启动
    • Npm镜像加速
    • PostgreSQL快速安装
    • Temurin JDK 23快速安装
  • 成神之路

    • 专区—Ambari
    • 专区—Ambari-Metrics
    • 专区—Bigtop
  • 集成案例

    • Redis集成教学
    • Dolphin集成教学
    • Doris集成教学
    • 持续整理...
  • 核心代码

    • 各组件代码
    • 通用代码模板
  • 国产化&其他系统

    • Kylin V10系列
    • Rocky系列
    • Ubuntu系列
  • Grafana监控方案

    • Ambari-Metrics插件
    • Infinity插件
  • 优化增强

    • 组件配置调优
  • 支持&共建

    • 蓝图愿景
    • 合作共建
    • 服务说明
GitHub (opens new window)

JaneTTR

数据酿造智慧,每一滴都是沉淀!
首页
  • 部署专题

    • 常规安装
    • 一键部署
  • 组件专题

    • 安装指导
    • 魔改分享
  • 高阶玩法

    • 实战 Kerberos
    • 实战 Ranger
  • 版本专题

    • 更新说明
    • BUG临时处理
  • 实验室

    • VIEW插件
    • JIRA速查
  • Ambari-Env

    • 环境准备
    • 开始使用
  • 二开指导

    • 前端开发
    • 后端开发
  • 组件编译

    • 专区—Ambari
    • 专区—Bigtop-官方组件
    • 专区—Bigtop-扩展组件
  • 报错解决

    • 专区—Ambari
    • 专区—Bigtop
  • 其他技巧

    • APT仓库增量更新
    • Maven镜像加速
    • Gradle镜像加速
    • Bower镜像加速
    • 虚拟环境思路
    • R环境安装+一键安装脚本
    • Ivy配置私有镜像仓库
    • Node.js 多版本共存方案
    • Ambari Web本地启动
    • Npm镜像加速
    • PostgreSQL快速安装
    • Temurin JDK 23快速安装
  • 成神之路

    • 专区—Ambari
    • 专区—Ambari-Metrics
    • 专区—Bigtop
  • 集成案例

    • Redis集成教学
    • Dolphin集成教学
    • Doris集成教学
    • 持续整理...
  • 核心代码

    • 各组件代码
    • 通用代码模板
  • 国产化&其他系统

    • Kylin V10系列
    • Rocky系列
    • Ubuntu系列
  • Grafana监控方案

    • Ambari-Metrics插件
    • Infinity插件
  • 优化增强

    • 组件配置调优
  • 支持&共建

    • 蓝图愿景
    • 合作共建
    • 服务说明
GitHub (opens new window)
  • Ambari-Web

    • Ambari-Web-3.0.0本地启动与二开环境搭建
    • 左侧 Service 数量控制原理与实现
    • 基于 Brunch Dev Server 反向代理连接生产环境
      • 一、问题背景与目标
      • 二、改造一:解除 testMode 强绑定
        • 1、修改 ambari-web/app/config.js
        • 2、替换为可控模式
        • 3、控制逻辑说明
        • 4、test 模式效果截图
      • 三、改造二:重写 Brunch Dev Server
        • 1、修改 ambari-web/brunch-config.js
        • 2、替换为自定义 server
        • 3、参数说明
      • 四、新增核心文件 brunch-server.js
      • 五、源码压缩包下载(百度网盘)
      • 六、启动与验证
        • 1、启动日志
        • 2、浏览器 F12 验证
  • 实战核心

  • META-DEVELOP-FRONTEND
  • Ambari-Web
JaneTTR
2026-02-25
目录

基于 Brunch Dev Server 反向代理连接生产环境

# 一、问题背景与目标

image-20260225094304750

本地执行:

yarn start
1

访问:

http://localhost:3333
1

页面可以正常打开,但此时存在几个关键问题:

  • 默认进入 testMode
  • 所有接口为 mock
  • 无法直连线上 Ambari Server
  • WebSocket 无法透传
  • 存在跨域与 Cookie 问题

核心目标

让本地 Ambari-Web:

  1. 默认连接真实生产接口
  2. 可通过 URL 切换 mock
  3. 无跨域问题
  4. 支持 WebSocket
  5. 不修改后端代码

# 二、改造一:解除 testMode 强绑定

# 1、修改 ambari-web/app/config.js

image-20260225095432199

原逻辑:

App.testMode = (location.port == '3333');
1

问题:端口 3333 自动进入 mock,无法联调真实接口。

# 2、替换为可控模式

// Default to real backend calls in local dev. Use ?testMode=true to enable mocks explicitly.
var hasTestModeQuery = /(?:^|[?&])testMode=true(?:&|$)/.test(location.search);
App.testMode = hasTestModeQuery;
1
2
3

# 3、控制逻辑说明

访问地址 结果
http://localhost:3333/ (opens new window) 真实接口
http://localhost:3333/?testMode=true (opens new window) mock

建议

默认联调真实接口,仅在需要验证 UI 或接口模拟时启用 testMode。

# 4、test 模式效果截图

登录前:

image-20260225095819548

登录后:

image-20260225095929852

# 三、改造二:重写 Brunch Dev Server

# 1、修改 ambari-web/brunch-config.js

image-20260225100012300

原始配置:

server: {
  port: 3333,
  base: '/',
  run: 'no'
},
1
2
3
4
5

# 2、替换为自定义 server

server: {
  path: './brunch-server.js',
  config: {
    proxyTarget: 'http://dev1.test.com:8080',
    proxyPrefix: '/api'
  },
  port: 3333,
  base: '/',
  run: 'no'
},
1
2
3
4
5
6
7
8
9
10

# 3、参数说明

参数 说明
path 指向自定义 server 文件
proxyTarget 线上 Ambari 地址
proxyPrefix 匹配此前缀才走代理

设计原则

只代理 /api,静态资源仍由本地 Brunch 提供。

# 四、新增核心文件 brunch-server.js

image-20260225100232320

核心代码说明

完整 server 实现请参考:

Ambari-Web 本地开发:Brunch Dev Server 反向代理 API(支持 WS / CORS / 环境变量覆盖)

# 五、源码压缩包下载(百度网盘)

image-20260225104429931

下载地址:

https://pan.baidu.com/s/1knRagnXjg7T8lTh6KfyTYA?pwd=ewmx
1

使用方式

下载后直接覆盖至 ambari-web 根目录即可。

# 六、启动与验证

重新启动:

yarn start
1

# 1、启动日志

image-20260225104614424

关键输出:

Proxying /api to http://dev1.test.com:8080
1

说明代理加载成功。

# 2、浏览器 F12 验证

image-20260225105213048

验证点:

  • 请求路径仍为 localhost:3333
  • 实际响应来自 dev1.test.com
  • 无跨域报错
  • Cookie 正常
  • Session 正常
#Ambari#Ambari-Web#前端二开#Ember.js#Brunch#http-proxy#WebSocket#Node.js#Yarn#WebStorm
左侧 Service 数量控制原理与实现
Brunch Dev Server 反向代理 API

← 左侧 Service 数量控制原理与实现 Brunch Dev Server 反向代理 API→

最近更新
01
优惠政策
03-02
02
更新日志 · v2.2.3 2026/03
03-01
03
Brunch Dev Server 反向代理 API
02-25
更多文章>
Theme by Vdoing | Copyright © 2017-2026 JaneTTR | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式