Next.js 15 多租户与子域名路由治理概述多租户系统需要在路由、配置与缓存层实现隔离。本文使用 Middleware 做子域名映射、租户注入与缓存键治理。子域名映射与注入// middleware.ts(简化) import { NextResponse } from 'next/server' import type { NextRequest } from 'next/server' const tenants = { 'a.example.com': { id: 'tenantA', locale: 'en-US' }, 'b.example.com': { id: 'tenantB', locale: 'zh-CN' } } export function middleware(req: NextRequest) { const host = req.headers.get('host') || 'a.example.com' const tenant = tenants[host] || tenants['a.example.com'] const url = req.nextUrl.clone() url.searchParams.set('tenant', tenant.id) url.searchParams.set('locale', tenant.locale) return NextResponse.rewrite(url) } export const config = { matcher: ['/((?!_next|static|api).*)'] } 页面内租户隔离export default function Page({ searchParams }: { searchParams: { tenant?: string; locale?: string } }) { const tenantId = searchParams.tenant || 'tenantA' const locale = searchParams.locale || 'en-US' return <TenantHome tenantId={tenantId} locale={locale} /> } 缓存键与 SEO缓存键包含 `tenant` 与语言参数;Metadata 按租户输出 `canonical/hreflang`;sitemap 分片输出各租户路径。技术参数与验证多租户映射正确;缓存不污染;SEO 路径清晰。注意事项租户配置来源统一(KV/DB);谨慎进行跨租户共享资源;遵循隐私合规。参考资料Next.js Middleware 与 Metadata 文档;多租户治理实践。---发布信息:已发布 · 技术验证 · 阅读 36 分钟 · CC BY-SA 4.0

发表评论 取消回复