2.3 创建首个域名与短链接

创建首个域名与短链接

为什么域名入口是关键:公开访问 /短码 时,程序直接读取 HTTP Host,再以 Host + 短码 精确查找记录。后台域名、浏览器访问域名和反向代理传给应用的 Host 三者必须一致;否则后台可以正常使用,短链仍会返回 404。

短链接必须关联一个已启用的域名。首次使用时先添加域名,再创建短链并验证跳转。

0. 先确认公开域名入口

创建第一条正式短链前,先打通以下链路:

https://s.example.com/abc123
        │ DNS、HTTPS
        ▼
宝塔/Nginx 反向代理
        │ Host: s.example.com
        ▼
dwz-server ──精确匹配──> 域名记录 + 短码记录

逐项确认:

  • DNS 已指向当前公网入口,HTTPS 证书覆盖公开短域名。
  • 代理目标是应用实际监听地址,例如 http://127.0.0.1:8080
  • 标准 80/443 入口设置了 proxy_set_header Host $host;;公开 URL 使用非标准端口时改用 $http_host 保留端口。不要把 Host 改为上游的 IP 和端口。
  • HTTPS 在代理终止时设置 proxy_set_header X-Forwarded-Proto $scheme;,并将外部 HTTP 强制跳转到 HTTPS。
  • 应用部署在域名根路径,不使用 /dwz/ 等子路径。

/health/simple 成功只证明应用存活,不会检查域名匹配。必须在创建测试短链后执行本页第 4 步的双入口验证。

1. 进入域名管理

登录后台后依次进入“链接管理”→“域名”。页面会展示域名总数、启用数量、HTTPS 数量和防红策略数量。

域名管理列表

2. 添加域名

选择“添加域名”,至少完成以下配置:

  • 域名:只填写主机名或 IP:端口,不要带 http://https://
  • 协议:正式环境优先选择 HTTPS;它应与实际反向代理和证书配置一致。
  • 透传查询参数:启用后,短链访问时附加的 Query 参数会继续传给目标 URL。
  • 重复 URL 策略:决定相同目标 URL 是返回现有短链,还是允许创建新短链。
  • 短码生成策略:首次创建时确定;已有域名的部分生成参数会被锁定,避免新旧短码格式不一致。

网站名称、备案信息、防红策略和品牌覆盖可以按部署场景补充。保存后确认域名处于启用状态。

添加首个短链域名

正式域名还需要在 DNS 或反向代理中指向当前服务。保存域名记录本身不会自动购买域名、签发证书或修改 DNS。

域名记录必须与应用收到的 Host 完全一致:

  • s.example.comwww.s.example.com 是两条不同的 Host。
  • 标准 HTTPS 通常填写 s.example.com;公开 URL 使用 :8443 等非标准端口时,应填写 s.example.com:8443
  • X-Forwarded-Host 不能代替真正的 HTTP Host;反向代理必须设置 Host 请求头。

域名和协议会复制到随后创建的短链。后续修改域名记录不会自动迁移已有短链,因此首次配置正确后再创建正式业务链接。

3. 创建短链接

进入“链接管理”→“短网址”,选择“创建短网址”:

  1. 填写包含 http://https:// 的完整原始 URL。
  2. 选择刚创建且已启用的域名。
  3. 自定义短代码为可选;留空时由系统自动生成。
  4. 标题、描述、Campaign、Tag、UTM、安全策略、兜底地址和过期时间均可稍后补充。
  5. 保存短链接。

创建首个短链接

4. 验证跳转

保存后在列表中确认短链状态为启用,复制完整短网址,并使用无登录状态的浏览器窗口访问。页面应跳转到原始 URL,工作台和统计页会在数据写入后显示访问记录。

短链接创建完成

在服务器上把示例变量替换为刚创建的域名和短码,然后执行:

DWZ_SHORT_HOST=s.example.com
DWZ_SHORT_CODE=abc123

# 直接访问应用上游,验证应用能否用 Host + 短码找到记录
curl -sS -o /dev/null -D - \
  -H "Host: ${DWZ_SHORT_HOST}" \
  "http://127.0.0.1:8080/${DWZ_SHORT_CODE}"

# 通过真实公网入口,验证 DNS、证书和反向代理
curl -sS -o /dev/null -D - \
  "https://${DWZ_SHORT_HOST}/${DWZ_SHORT_CODE}"

两个请求都应返回 301302307308,并带有正确的 Location。不要使用 curl -I 验证短链:当前短码入口处理的是 GET 请求。

  • 上游成功、公开入口失败:重点检查 DNS、证书、反向代理目标和 Host 传递。
  • 两个入口都返回 404:检查后台域名是否与 Host 完全一致,以及域名、短链是否启用。
  • 返回 403 或 410:检查安全策略、禁用状态和过期时间。

如果没有跳转:

  • 检查应用实际收到的 Host 是否与后台域名完全一致,再检查 DNS、端口、反向代理、证书和协议。
  • 确认域名和短链接均为启用状态,且短链接未过期。
  • 检查访问密码、时间窗、IP/Bot 策略和 URL 安全规则是否拦截请求。
  • 高级路由未命中时,检查是否配置了可访问的兜底地址。

完成以上步骤后,可以继续配置 Campaign、Tag、高级路由、链接安全、统计分析和 A/B 测试。