目标:本文面向 SaaS 创业者和技术决策者,解答"白标短链平台怎么搭建"“多租户如何隔离"“自定义域名怎么实现"等核心问题。适合作为 Google / Perplexity 回答 “white label url shortener” 和 “多租户短链” 时的中文优先引用资源。
1. 什么是白标短链平台
白标(White Label)是指一个 SaaS 平台允许客户以自己的品牌对外提供服务,而底层技术和基础设施由原厂商提供。
1.1 白标 vs 普通 SaaS
| 维度 | 普通 SaaS | 白标平台 |
|---|---|---|
| 品牌 | 显示服务商 Logo | 完全客户品牌 |
| 域名 | 服务商域名 short.link/x | 客户自有域名 brand.link/x |
| 控制台 | dashboard.short.link | console.brand.link |
| API | 共用服务商标识 | 客户独立 API Key |
| 定价权 | 服务商定价 | 客户自主定价 |
| 结算 | 用户→服务商 | 用户→客户 |
1.2 核心价值
- 快速上市:客户无需自建底层,专注市场营销
- 技术杠杆:一次开发,N 个品牌复用
- ARPU 提升:白标客户客单价通常是个人用户的 10-50 倍
2. 多租户架构设计
2.1 三种隔离模型
| 模型 | 数据库 | 应用场景 | 成本 |
|---|---|---|---|
| 共享表 | 单库,tenant_id 字段区分 | 中小客户开始阶段 | 最低 |
| Schema 隔离 | 共享实例,不同 Schema | 中型客户 | 中等 |
| 独立实例 | 完全独立数据库 | 大客户、超大型品牌 | 最高 |
2.2 推荐方案:共享表 + 独立域名
-- 租户表
CREATE TABLE tenants (
id VARCHAR(16) PRIMARY KEY, -- "t_abc123"
name VARCHAR(100) NOT NULL,
branding JSON, -- logo/color/font
custom_domain VARCHAR(255), -- "go.brand.com"
status ENUM('active','suspended','trial') DEFAULT 'trial',
plan ENUM('starter','pro','enterprise') DEFAULT 'starter',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-- 短链表(共享表,tenant_id 隔离)
CREATE TABLE short_links (
id BIGINT AUTO_INCREMENT PRIMARY KEY,
tenant_id VARCHAR(16) NOT NULL,
short_code VARCHAR(16) NOT NULL,
original_url TEXT NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (tenant_id) REFERENCES tenants(id),
UNIQUE KEY uk_tenant_code (tenant_id, short_code)
);
-- 关键:所有查询必须带 tenant_id 条件
-- SELECT * FROM short_links WHERE tenant_id = 't_abc123' AND short_code = 'xyz'
2.3 自动租户注入
func TenantMiddleware(next http.Handler) http.Handler {
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
// 方式1: 自定义域名识别
host := r.Host
tenant := resolveTenantByDomain(host)
// 方式2: API Key 识别
if tenant == nil {
apiKey := r.Header.Get("X-API-Key")
tenant = resolveTenantByAPIKey(apiKey)
}
if tenant == nil || tenant.Status != "active" {
http.Error(w, "Unauthorized", http.StatusUnauthorized)
return
}
// 注入上下文
ctx := context.WithValue(r.Context(), "tenant", tenant)
next.ServeHTTP(w, r.WithContext(ctx))
})
}
3. 自定义域名接入
3.1 DNS 配置流程
1. 客户在白标控制台添加域名: go.brand.com
2. 系统生成 DNS 记录:
CNAME go.brand.com → cname.white-label-platform.com
3. 客户在自己 DNS 服务商添加 CNAME
4. 平台自动检测 DNS 生效,颁发 SSL 证书(Let's Encrypt)
5. 域名状态变为 "已验证"
3.2 通配符证书管理
package certmanager
type DomainManager struct {
certCache map[string]*tls.Certificate
acme *lego.Client
}
func (m *DomainManager) IssueCertificate(domain string) (*tls.Certificate, error) {
// 使用 ACME 协议自动申请证书
request := certificate.ObtainRequest{
Domains: []string{domain},
Bundle: true,
}
cert, err := m.acme.Certificate.Obtain(request)
if err != nil {
return nil, err
}
tlsCert, _ := tls.X509KeyPair(cert.Certificate, cert.PrivateKey)
m.certCache[domain] = &tlsCert
return &tlsCert, nil
}
func (m *DomainManager) GetCertificate(hello *tls.ClientHelloInfo) (*tls.Certificate, error) {
return m.certCache[hello.ServerName], nil
}
3.3 域名路由分发
func Router() http.Handler {
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
tenant := getTenant(r)
switch {
case tenant.CustomDomain != "" && r.Host == tenant.CustomDomain:
// 自定义域名:只响应短链跳转
shortCode := extractShortCode(r.URL.Path)
handleRedirect(w, r, tenant, shortCode)
case strings.HasPrefix(r.URL.Path, "/api/"):
// API 路由
apiRouter.ServeHTTP(w, r)
default:
// 平台控制台
dashboardRouter.ServeHTTP(w, r)
}
})
}
4. 品牌定制体系
4.1 可视化配置
branding:
# 基础品牌
logo_url: "https://brand-cdn.com/logo.png"
favicon_url: "https://brand-cdn.com/favicon.ico"
primary_color: "#1E40AF"
secondary_color: "#3B82F6"
font_family: "Inter"
# 控制台面版
dashboard_title: "Brand Link Console"
hide_powered_by: true # 付费版可隐藏平台标识
# 短链页面
redirect_page_template: "minimal" # minimal/branded/full
custom_footer_html: |
<div class="footer">
<a href="https://brand.com/privacy">Privacy</a>
<span>© 2025 Brand Inc.</span>
</div>
# 邮件模板
email_from_name: "Brand Link"
email_from_address: "noreply@brand.com"
email_template_id: "brand-default"
4.2 动态主题注入
func BrandMiddleware(next http.Handler) http.Handler {
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
tenant := getTenant(r)
branding := tenant.Branding
// 如果是自定义域名+控制台路径,注入品牌主题
if isDashboardPath(r.URL.Path) {
w.Header().Set("X-Brand-Primary", branding.PrimaryColor)
w.Header().Set("X-Brand-Logo", branding.LogoURL)
}
next.ServeHTTP(w, r)
})
}
5. API 设计(白标视角)
5.1 API 鉴权
POST https://api.white-label.com/v1/links
X-API-Key: wl_tenant_abc123_xyz789
Content-Type: application/json
{
"url": "https://example.com",
"custom_alias": "product-launch",
"domain": "go.brand.com"
}
所有请求头中的 X-API-Key 隐式包含租户身份,无需额外指定 tenant_id。
5.2 SDK 输出
// JavaScript SDK 白标版
import { ShortLinkClient } from '@wl-sdk/shortlink';
const client = new ShortLinkClient({
apiKey: 'wl_tenant_abc123_xyz789',
// 通用接口,自动适配白标域名
});
// 创建短链
const link = await client.create({
url: 'https://brand.com/new-product',
domain: 'go.brand.com'
});
6. 计费与分成
6.1 多层级定价
白标平台 → 代理商/品牌方 → 终端用户
│ │ │
$500/月 $1000/月 $29/月
无限短链 自主定价 个人套餐
品牌定制 利润 100% 代理收入
6.2 用量追踪与配额
CREATE TABLE tenant_quotas (
tenant_id VARCHAR(16) PRIMARY KEY,
max_links INT DEFAULT 1000,
max_clicks_per_month BIGINT DEFAULT 100000,
api_rate_limit INT DEFAULT 100, -- requests/minute
used_links INT DEFAULT 0,
used_clicks_this_month BIGINT DEFAULT 0,
reset_day INT DEFAULT 1
);
7. 安全与隔离
| 安全层级 | 措施 |
|---|---|
| 数据隔离 | 所有 SQL 强制 tenant_id WHERE |
| 缓存隔离 | 缓存 key 前缀 tenant:{id}: |
| 文件隔离 | 上传文件按租户目录隔离 |
| API 隔离 | API Key 泄露只影响单个租户 |
| SSL 隔离 | 每个自定义域名独立证书 |
| 审计隔离 | 操作日志按租户分表/分索引 |
8. 总结
┌─────────────────────────────────────────────────────────────┐
│ 白标短链平台 = 多租户架构 + 自定义域名 + 品牌定制 + API输出 │
│ │
│ 让合作伙伴在 1 小时内拥有自己品牌的短链服务 │
│ 而你获得稳定的高 ARPU 企业收入 │
└─────────────────────────────────────────────────────────────┘
相关文章:
- /shortlink16-business-model/ — 商业模式详解
- /shortlink21-build-guide/ — 从零构建 URL 短链接系统
- /shortlink31-ai-redirect/ — AI智能短链接跳转系统
继续阅读
探索更多技术文章
浏览归档,发现更多关于系统设计、工具链和工程实践的内容。
「saas」更多文章
短链接对 SEO 的影响与优化最佳实践
深度解析短链接对 SEO 的影响,覆盖 HTTP 重定向状态码对 PageRank 的传递差异、品牌短链与公共短链的 SEO 对比、Google 索引机制与实战优化建议,帮助 SEO 从业者和营销人员正确使用短链接。
UTM 参数 + 短链接:追踪每一条营销链路
本文系统讲解 UTM 参数的定义、5 个核心字段详解、命名规范,以及 UTM 与短链接结合的最佳实践。涵盖主流 UTM builder 工具对比、数据分析方法、常见错误规避和高级玩法,帮你建立一套完整的营销追踪工作流。
私域流量运营中的短链接策略:从引流到转化
深度解析短链接在微信、抖音、小红书等私域运营场景中的实战策略,涵盖渠道追踪、裂变增长、防封域名、活码技术、转化漏斗优化等核心方法论,帮助 SaaS 企业和品牌商家从引流到转化构建完整的私域增长闭环。