feat: add downstream domain fix plugin

This commit is contained in:
沐念云
2026-07-01 18:30:11 +08:00
commit 2a5621d318
8 changed files with 509 additions and 0 deletions
+149
View File
@@ -0,0 +1,149 @@
# 下游推送域名修复插件
用于你站点名下代理用户的地址变更后,可通过本插件直接批量更换推送代理新地址。
## 功能说明
本插件用于批量修改指定客户名下服务器的下游推送地址。
当代理用户更换域名后,系统数据库中已保存的推送地址仍然可能是旧域名,导致上游向下游推送时请求失败,例如出现 `HTTP 404`。通过本插件可以按客户 ID 批量修复这些服务器的推送域名。
插件会更新数据库中:
```text
shd_host.stream_info
```
字段内 JSON 的:
```text
downstream_url
```
## 适用场景
- 代理站更换域名
- 上游推送下游失败
- 数据库中保存的下游推送地址仍是旧地址
- 需要按客户 ID 批量修复该客户名下所有服务器的推送地址
## 安装方式
将插件目录上传到系统插件目录:
```text
public/plugins/addons/downstream_domain_fix
```
然后进入后台插件管理页面,找到并安装:
```text
下游推送域名修复
```
## 使用方法
进入插件后台菜单:
```text
修复推送域名
```
填写以下信息:
| 字段 | 说明 | 示例 |
| --- | --- | --- |
| 客户ID | 需要批量修复的客户 ID,对应 `shd_host.uid` | `8888` |
| 指定推送域名 | 新的代理站地址 | `https://www.baidu.com` |
点击:
```text
开始修复
```
插件会自动处理该客户名下符合条件的服务器。
## 处理规则
插件只会处理满足以下条件的服务器:
1. `shd_host.uid` 等于输入的客户 ID
2. `stream_info` 不为空
3. `stream_info` 中存在完整的下游推送信息:
- `downstream_url`
- `downstream_token`
- `downstream_id`
插件会跳过以下服务器:
- 没有下游推送信息的服务器
- 下游推送信息不完整的服务器
- 当前推送域名已经等于目标域名的服务器
## 修改内容
插件实际修改的是:
```text
shd_host.stream_info.downstream_url
```
不会修改:
- 产品信息
- 客户信息
- 订单信息
- 服务器状态
- `downstream_token`
- `downstream_id`
## 域名填写说明
填写站点根地址即可,例如:
```text
https://www.baidu.com
```
如果系统安装在子目录,则填写到系统根目录,例如:
```text
https://www.baidu.com/finance
```
## 处理结果
执行后页面会显示:
- 匹配服务器数量
- 成功更新数量
- 跳过数量
- 每台服务器的处理结果
结果表格包含:
- Host ID
- 主机名
- 主 IP
- 状态
- 原推送域名
- 新推送域名
- 处理结果
## 注意事项
- 执行前建议先备份数据库。
- 请确认客户 ID 正确,避免修改错误客户名下的服务器。
- 本插件只修改本地数据库中的推送域名,不主动调用上游接口。
- 修改完成后,上游后续推送会读取新的 `downstream_url`
## 插件信息
| 项目 | 内容 |
| --- | --- |
| 插件名称 | 下游推送域名修复 |
| 插件标识 | `DownstreamDomainFix` |
| 插件目录 | `downstream_domain_fix` |
| 作者 | 沐念云 |
| 版本 | `1.0` |