Nginx反向代理不提供微前端沙箱能力,但为多租户架构提供网络隔离底座:通过server_name或location实现租户路由分流,透传X-Tenant-ID等Header,托管静态资源并配合HTTPS增强租户感知,同时需注意跨域与Cookie隔离。

Nginx反向代理本身不提供微前端沙箱能力,但它能为多租户微前端架构打下关键的网络隔离底座——真正起沙箱作用的是前端框架(如qiankun、garfish)或浏览器原生机制(如iframe、Shadow DOM),而Nginx负责把“谁该看到哪个子应用”这件事,在请求入口层就理清楚。
多租户路由隔离:按租户域名或路径分流
Nginx不处理JS执行或DOM隔离,但它能确保不同租户的流量互不干扰:
- 用
server_name区分租户域名(如hr.app.com→ 租户HR,fin.app.com→ 租户Finance) - 或用
location匹配路径前缀(如/tenant-a/和/tenant-b/),统一转发但保留上下文 - 关键是:所有租户共用同一套微前端主应用(基座),但Nginx提前把请求“贴上租户标签”,再通过
X-Tenant-ID等自定义Header透传给前端
静态资源与子应用托管解耦
微前端中每个子应用通常是独立构建的静态资源(HTML/JS/CSS)。Nginx可按租户做资源路由:
- 将
/tenant-a/app1/*映射到./dist/tenant-a/app1/ - 将
/tenant-b/app1/*映射到./dist/tenant-b/app1/ - 或统一指向CDN路径,配合租户标识动态拼接资源URL(如
https://cdn.example.com/{tenant}/app1/main.js)
HTTPS + Header增强:支撑租户感知的前端逻辑
启用HTTPS不只是安全要求,更是多租户可信链起点:
- 配置SSL证书后,Nginx可在转发时注入租户信息:
proxy_set_header X-Tenant-ID $host; # 域名即租户ID # 或从路径提取:proxy_set_header X-Tenant-ID $1;(配合 location ~ ^/([^/]+)/(.*)$)
- 主应用读取该Header,初始化对应租户的菜单、权限、主题配置,再加载对应子应用
避免常见陷阱:跨域与Cookie隔离
- 子应用若走独立域名(如
app1.hr.app.com),需在Nginx中显式设置CORS头,或更推荐:全部走主域名路径代理,消除跨域 - Cookie默认按域名隔离,多租户若共用域名,必须用
Path=/tenant-a/+SameSite=Lax控制作用域,Nginx无法代劳,但可辅助重写Cookie Path
不复杂但容易忽略


















