# 域名配置指南

本文档指导你如何将自定义域名接入猴创二级域名分发系统，使用户能够正常解析和使用二级域名。

---

## 目录

1. [前置条件](#1-前置条件)
2. [域名注册商配置（以阿里云为例）](#2-域名注册商配置以阿里云为例)
3. [系统管理员后台添加域名](#3-系统管理员后台添加域名)
4. [验证配置是否生效](#4-验证配置是否生效)
5. [常见问题](#5-常见问题)
6. [附录：各主流注册商配置入口](#6-附录各主流注册商配置入口)

---

## 1. 前置条件

在开始之前，请确保：

| 项目 | 说明 |
|------|------|
| 已注册域名 | 你拥有一个顶级域名（如 `example.com`），并已完成实名认证 |
| 域名注册商 | 该域名在任意注册商管理（阿里云、腾讯云、Namecheap、GoDaddy 等） |
| DNS 解析服务 | 注册商提供 DNS 解析服务（通常默认包含），或你使用第三方 DNS（Cloudflare、DNSPod 等） |
| 服务器 IP | 你有一台服务器，拥有公网 IP 地址，或准备使用 CNAME 指向的目标域名 |

---

## 2. 域名注册商配置（以阿里云为例）

你需要在你域名的 DNS 管理中添加一条 **泛解析记录**（Wildcard Record），以便系统能自动处理所有子域名。

### 2.1 添加 A 记录（指向服务器 IP）

```
记录类型：A
主机记录：*          ← 星号表示泛解析，匹配所有二级域名
记录值：  你的服务器公网 IP（如 1.2.3.4）
TTL：     600（或默认）
```

**示意图说明：**

```
DNS 解析设置
┌──────────────────────────────────────────────────┐
│ 记录类型    主机记录    记录值          TTL       │
├──────────────────────────────────────────────────┤
│ A           @           1.2.3.4        600       │  ← 根域名（如 example.com）
│ A           *           1.2.3.4        600       │  ← ★ 泛解析（关键！）
└──────────────────────────────────────────────────┘
```

### 2.2 或者添加 CNAME 记录（指向其他域名）

如果你的服务器没有固定 IP，或者你想指向 CDN / 反向代理：

```
记录类型：CNAME
主机记录：*             ← 星号表示泛解析
记录值：  你的目标域名（如 cdn.example.com）
TTL：     600
```

### 2.3 为什么需要泛解析？

泛解析（`*`）的作用是让 **任意前缀** 的二级域名都指向同一个服务器 IP。

例如你添加了 `*.houchuang.com → 1.2.3.4`，则：

- `myapp.houchuang.com` → 自动解析到 `1.2.3.4`
- `blog.houchuang.com` → 自动解析到 `1.2.3.4`
- `api-dev.houchuang.com` → 自动解析到 `1.2.3.4`

**这样，用户在系统后台绑定域名后，解析立即生效，无需每次都手动添加 DNS 记录。**

### 2.4 详细操作步骤（阿里云）

1. 登录 [阿里云控制台](https://dns.console.aliyun.com/)
2. 进入 **DNS 解析 → 域名解析列表**
3. 点击目标域名右侧的 **解析设置**
4. 点击 **添加记录**
5. 按如下填写：
   - **记录类型**：`A`（或 `CNAME`）
   - **主机记录**：`*`
   - **解析线路**：默认
   - **记录值**：你的服务器公网 IP（或目标域名）
   - **TTL**：`600`（10 分钟，便于测试）
6. 点击 **确认**
7. 另外建议添加一条 `@` 记录（根域名），指向你的首页 IP

---

## 3. 系统管理员后台添加域名

DNS 泛解析配置完成后，还需在系统后台将该域名添加为可用的域名池。

### 3.1 登录管理后台

访问 `http://你的域名/admin/login.php`

默认账号：`admin`
默认密码：`Houchuang@2026`

> ⚠️ 上线后请立即修改默认密码！

### 3.2 进入域名管理

点击左侧导航 **域名管理**，进入域名管理页面。

### 3.3 添加域名

1. 在「添加域名」表单中输入完整域名
   - 示例：`houchuang.com`
   - 注意：不带 `www.` 前缀，不带 `http://`
2. 可选：填写备注（如 "主站域名"）
3. 点击 **添加**
4. 添加成功后，域名状态默认为 **启用**，用户即可在注册页面看到该域名

### 3.4 管理域名

| 操作 | 说明 |
|------|------|
| 启用 / 停用 | 切换域名是否对用户可见。停用后，用户无法注册该域名下的子域名 |
| 删除 | 删除域名。已注册的子域名也会被一并删除，请谨慎操作 |

---

## 4. 验证配置是否生效

### 4.1 检查 DNS 解析

在命令行使用 `dig` 或 `nslookup` 命令检查泛解析是否生效：

```bash
# 验证泛解析
dig myapp.houchuang.com +short
# 应返回你的服务器 IP（如 1.2.3.4）

dig anyprefix.houchuang.com +short
# 也应返回相同的 IP
```

### 4.2 检查系统功能

1. 用户注册账号 → 登录控制台
2. 选择一个可用域名，填写前缀和目标值
3. 提交后，域名状态变为「审核中」或「已生效」
4. 等待最多 10 分钟（TTL 时间），访问 `你的前缀.你的域名`
5. 应该能正确访问到目标服务器

---

## 5. 常见问题

### Q1: 为什么添加了泛解析，但访问 still 不生效？

可能原因：

| 原因 | 解决方案 |
|------|----------|
| DNS 缓存未刷新 | 等待 TTL 时间（建议首次设置 TTL 为 600 秒），或使用 `dig` 命令强制查询权威 DNS |
| 注册商未生效 | 域名新增解析记录最长需要 24-48 小时全球生效（通常在 10 分钟内） |
| 服务器未配置 Nginx / Apache | 需要在 Web 服务器中配置虚拟主机（VirtualHost）以响应所有二级域名的请求 |
| 运营商 DNS 缓存 | 尝试更换 DNS 服务器（如 `8.8.8.8`）测试 |

### Q2: 不想要泛解析，可以单独添加每个子域名吗？

可以。但**强烈不建议**这样做，因为：

- 用户每次绑定一个新的子域名，你都需要手动添加一条 DNS 记录
- 失去了「用户自助绑定，即时生效」的核心体验

系统设计理念就是「泛解析兜底 + 后台业务管控」。

### Q3: 我已经有 `www` 的 CNAME 记录了，加了 `*` 会冲突吗？

不会。`*` 是泛匹配，`www` 是精确匹配。精确匹配优先级高于泛解析，两者可以共存。

```
A    www     → 你的服务器 IP    ← 优先级高，正常使用
A    *       → 你的服务器 IP    ← 泛匹配，兜底
```

### Q4: 使用 Cloudflare 需要注意什么？

如果使用 Cloudflare 的 DNS 服务：

1. 将域名的 NS 记录指向 Cloudflare
2. 在 Cloudflare 的 DNS 设置中添加 `*` 记录
3. **注意**：如果 Cloudflare 开启了 Proxy（橙色云朵），那么你获取到的 IP 是 Cloudflare 的 CDN IP，而非你的真实服务器 IP
4. 如果需要在服务器端获取用户真实 IP，需要配置 Cloudflare 的 `CF-Connecting-IP` 头

### Q5: 如何更改 TTL？

TTL（Time To Live）决定了 DNS 解析结果在客户端缓存的时间：

- **开发测试阶段**：建议设为 `60`~`600` 秒，方便快速验证
- **正式上线后**：建议设为 `3600`（1 小时）或 `86400`（24 小时），减少 DNS 查询次数

---

## 6. 附录：各主流注册商配置入口

| 注册商 | DNS 管理入口 | 泛解析格式 |
|--------|-------------|-----------|
| **阿里云** | 控制台 → DNS 解析 → 解析设置 | 主机记录填 `*` |
| **腾讯云** | 控制台 → DNS 解析 → 解析设置 | 主机记录填 `*` |
| **华为云** | 控制台 → DNS 解析 → 解析设置 | 主机记录填 `*` |
| **Cloudflare** | DNS → Add Record | Name 填 `*` |
| **GoDaddy** | 域名控制面板 → DNS 管理 | Type: A, Name: `*` |
| **Namecheap** | 域名列表 → Manage → Advanced DNS | Host: `*` |
| **DNSPod** | 控制台 → 解析管理 | 主机记录填 `*` |

---

## 配置检查清单

在告知用户可以正常使用前，请逐项确认：

- [ ] 域名已完成实名认证
- [ ] 已添加 `*` 泛解析记录（A 或 CNAME）
- [ ] 已添加 `@` 根域名记录（可选）
- [ ] 泛解析已生效（通过 `dig` 验证）
- [ ] 已在管理后台添加该域名并设置为启用
- [ ] Web 服务器已配置支持泛域名虚拟主机
- [ ] 测试用户注册 → 绑定域名 → 访问成功

---

> **猴创未来（漳州）信息科技有限公司**  
> 文档版本：v1.0  
> 最后更新：2026 年 6 月
