mirror of
https://github.com/Rain-kl/OpenFlare.git
synced 2026-09-30 14:26:36 +08:00
Refactor Nginx references to OpenResty throughout the codebase
- Updated all instances of "nginx" to "openresty" in log messages, error messages, and comments. - Changed paths and Docker image names to reflect OpenResty usage. - Modified test cases to align with OpenResty commands and configurations. - Adjusted documentation to replace Nginx mentions with OpenResty, including setup instructions and configuration details. - Ensured that version detection and runtime commands are consistent with OpenResty.
This commit is contained in:
+22
-21
@@ -172,8 +172,8 @@ go run ./cmd/agent -config ./agent.json
|
||||
"server_url": "http://127.0.0.1:3000",
|
||||
"discovery_token": "replace-with-global-discovery-token",
|
||||
"data_dir": "./data",
|
||||
"nginx_container_name": "atsflare-nginx",
|
||||
"nginx_docker_image": "nginx:stable-alpine",
|
||||
"openresty_container_name": "atsflare-openresty",
|
||||
"openresty_docker_image": "openresty/openresty:alpine",
|
||||
"heartbeat_interval": 30000,
|
||||
"sync_interval": 30000,
|
||||
"request_timeout": 10000
|
||||
@@ -189,10 +189,10 @@ go run ./cmd/agent -config ./agent.json
|
||||
"node_name": "node-01",
|
||||
"node_ip": "192.168.1.20",
|
||||
"data_dir": "./data",
|
||||
"nginx_path": "/usr/sbin/nginx",
|
||||
"route_config_path": "/etc/nginx/conf.d/atsflare_routes.conf",
|
||||
"cert_dir": "/etc/nginx/certs",
|
||||
"nginx_cert_dir": "/etc/nginx/certs",
|
||||
"openresty_path": "/usr/local/openresty/nginx/sbin/openresty",
|
||||
"route_config_path": "/usr/local/openresty/nginx/conf/conf.d/atsflare_routes.conf",
|
||||
"cert_dir": "/usr/local/openresty/nginx/conf/certs",
|
||||
"openresty_cert_dir": "/usr/local/openresty/nginx/conf/certs",
|
||||
"state_path": "./data/agent-state.json",
|
||||
"heartbeat_interval": 30000,
|
||||
"sync_interval": 30000,
|
||||
@@ -209,14 +209,14 @@ go run ./cmd/agent -config ./agent.json
|
||||
| `discovery_token` | 全局发现 Token,用于节点首次自动注册 | 与 `agent_token` 二选一 | 空 | `discovery-token-xxx` |
|
||||
| `node_name` | 节点名称 | 否 | 自动使用主机名 | `node-01` |
|
||||
| `node_ip` | 节点 IP | 否 | 自动探测第一个可用 IPv4 | `192.168.1.20` |
|
||||
| `nginx_path` | 本机 Nginx 可执行文件路径;设置后按本机 Nginx 模式运行 | 否 | 空;未设置时按 Docker Nginx 模式处理 | `/usr/sbin/nginx` |
|
||||
| `nginx_container_name` | Docker 模式下的 Nginx 容器名 | 否 | `atsflare-nginx` | `atsflare-nginx` |
|
||||
| `nginx_docker_image` | Docker 模式下用于初始化/管理的 Nginx 镜像 | 否 | `nginx:stable-alpine` | `nginx:stable-alpine` |
|
||||
| `openresty_path` | 本机 OpenResty 可执行文件路径;设置后按本机 OpenResty 模式运行 | 否 | 空;未设置时按 Docker OpenResty 模式处理 | `/usr/local/openresty/nginx/sbin/openresty` |
|
||||
| `openresty_container_name` | Docker 模式下的 OpenResty 容器名 | 否 | `atsflare-openresty` | `atsflare-openresty` |
|
||||
| `openresty_docker_image` | Docker 模式下用于初始化/管理的 OpenResty 镜像 | 否 | `openresty/openresty:alpine` | `openresty/openresty:alpine` |
|
||||
| `docker_binary` | Docker 可执行文件名或路径 | 否 | `docker` | `/usr/bin/docker` |
|
||||
| `data_dir` | Agent 数据目录,用于存储托管配置、证书和状态文件 | 否 | 配置文件所在目录下的 `data` 子目录 | `./data` |
|
||||
| `route_config_path` | 路由配置文件写入路径 | 否 | 默认为 `data_dir` 下托管路径 | `/etc/nginx/conf.d/atsflare_routes.conf` |
|
||||
| `cert_dir` | Agent 在本机写入证书文件的目录 | 否 | 默认为 `data_dir` 下托管证书目录 | `./data/etc/nginx/certs` |
|
||||
| `nginx_cert_dir` | Nginx 实际读取证书的目录 | 否 | 本机模式默认等于 `cert_dir`;Docker 模式默认 `/etc/nginx/atsflare-certs` | `/etc/nginx/certs` |
|
||||
| `openresty_cert_dir` | OpenResty 实际读取证书的目录 | 否 | 本机模式默认等于 `cert_dir`;Docker 模式默认 `/etc/nginx/atsflare-certs` | `/usr/local/openresty/nginx/conf/certs` |
|
||||
| `state_path` | Agent 本地状态文件路径 | 否 | 默认为 `data_dir` 下托管状态文件 | `./data/agent-state.json` |
|
||||
| `heartbeat_interval` | 心跳间隔 | 否 | `30000` 毫秒 | `30000` |
|
||||
| `sync_interval` | 配置同步间隔 | 否 | `30000` 毫秒 | `30000` |
|
||||
@@ -229,8 +229,9 @@ go run ./cmd/agent -config ./agent.json
|
||||
* 毫秒整数,例如 `30000`
|
||||
* Go duration 字符串,例如 `"30s"`
|
||||
* `node_name` 与 `node_ip` 未填写时会自动探测;若自动探测失败,配置校验会报错
|
||||
* 未配置 `nginx_path` 时,默认为 Docker Nginx 模式
|
||||
* 未配置 `openresty_path` 时,默认为 Docker OpenResty 模式
|
||||
* 配置保存时,`agent_version`、`nginx_version` 由程序运行时维护,不需要写入 JSON
|
||||
* 本机模式下的 `route_config_path` 需与节点主配置文件的 include 规则保持一致
|
||||
|
||||
### 2.4 Agent 托管路径默认值
|
||||
|
||||
@@ -242,17 +243,17 @@ go run ./cmd/agent -config ./agent.json
|
||||
| `cert_dir` | `data_dir/etc/nginx/certs` |
|
||||
| `state_path` | `data_dir/var/lib/atsflare/agent-state.json` |
|
||||
|
||||
Docker Nginx 模式下:
|
||||
Docker OpenResty 模式下:
|
||||
|
||||
| 字段 | 默认值 |
|
||||
| --- | --- |
|
||||
| `nginx_cert_dir` | `/etc/nginx/atsflare-certs` |
|
||||
| `openresty_cert_dir` | `/etc/nginx/atsflare-certs` |
|
||||
|
||||
### 2.5 Agent 启动示例
|
||||
|
||||
#### Docker Nginx 模式
|
||||
#### Docker OpenResty 模式
|
||||
|
||||
适用于节点本机不直接管理宿主机 Nginx,而是通过 Docker 容器运行 Nginx。
|
||||
适用于节点本机不直接管理宿主机 OpenResty,而是通过 Docker 容器运行 OpenResty。
|
||||
|
||||
```json
|
||||
{
|
||||
@@ -262,18 +263,18 @@ Docker Nginx 模式下:
|
||||
}
|
||||
```
|
||||
|
||||
#### 本机 Nginx 模式
|
||||
#### 本机 OpenResty 模式
|
||||
|
||||
适用于节点已经安装了宿主机 Nginx,且 Agent 直接执行 `nginx -t` 与 `nginx -s reload`。
|
||||
适用于节点已经安装了宿主机 OpenResty,且 Agent 直接执行 `openresty -t` 与 `openresty -s reload`。
|
||||
|
||||
```json
|
||||
{
|
||||
"server_url": "http://127.0.0.1:3000",
|
||||
"agent_token": "replace-with-node-auth-token",
|
||||
"nginx_path": "/usr/sbin/nginx",
|
||||
"route_config_path": "/etc/nginx/conf.d/atsflare_routes.conf",
|
||||
"cert_dir": "/etc/nginx/certs",
|
||||
"nginx_cert_dir": "/etc/nginx/certs"
|
||||
"openresty_path": "/usr/local/openresty/nginx/sbin/openresty",
|
||||
"route_config_path": "/usr/local/openresty/nginx/conf/conf.d/atsflare_routes.conf",
|
||||
"cert_dir": "/usr/local/openresty/nginx/conf/certs",
|
||||
"openresty_cert_dir": "/usr/local/openresty/nginx/conf/certs"
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
+27
-27
@@ -16,7 +16,7 @@
|
||||
|
||||
* Go 1.18+
|
||||
* 对 Agent 数据目录有写权限
|
||||
* 若使用独立 Nginx 模式:可执行 `nginx -t` 与 `nginx -s reload`
|
||||
* 若使用独立 OpenResty 模式:可执行 `openresty -t` 与 `openresty -s reload`
|
||||
* 若使用 Docker 模式:具备 Docker 执行权限
|
||||
|
||||
---
|
||||
@@ -84,18 +84,18 @@ volumes:
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
说明:
|
||||
|
||||
* `SESSION_SECRET` 必须替换为随机字符串
|
||||
* SQLite 数据文件持久化到 Docker volume `atsflare-data`
|
||||
* 镜像默认监听容器内 `3000` 端口
|
||||
* 若要固定版本,可将 `latest` 替换为具体 tag,例如 `ghcr.io/rain-kl/atsflare:v0.3.0`
|
||||
|
||||
版本升级说明:
|
||||
|
||||
* Root 用户可在管理端顶栏点击「版本」检查 GitHub 最新 Release
|
||||
* 当前运行的是 Release 二进制且二进制目录可写时,可直接在弹窗内触发 Server 自升级
|
||||
* 自升级会下载匹配当前平台的 `atsflare-server-*` 资产,替换当前二进制并自动重启进程
|
||||
说明:
|
||||
|
||||
* `SESSION_SECRET` 必须替换为随机字符串
|
||||
* SQLite 数据文件持久化到 Docker volume `atsflare-data`
|
||||
* 镜像默认监听容器内 `3000` 端口
|
||||
* 若要固定版本,可将 `latest` 替换为具体 tag,例如 `ghcr.io/rain-kl/atsflare:v0.3.0`
|
||||
|
||||
版本升级说明:
|
||||
|
||||
* Root 用户可在管理端顶栏点击「版本」检查 GitHub 最新 Release
|
||||
* 当前运行的是 Release 二进制且二进制目录可写时,可直接在弹窗内触发 Server 自升级
|
||||
* 自升级会下载匹配当前平台的 `atsflare-server-*` 资产,替换当前二进制并自动重启进程
|
||||
|
||||
### 2.4 首次登录
|
||||
|
||||
@@ -146,8 +146,8 @@ swag init -g main.go -o docs
|
||||
"server_url": "http://127.0.0.1:3000",
|
||||
"agent_token": "replace-with-node-auth-token",
|
||||
"data_dir": "./data",
|
||||
"nginx_container_name": "atsflare-nginx",
|
||||
"nginx_docker_image": "nginx:stable-alpine",
|
||||
"openresty_container_name": "atsflare-openresty",
|
||||
"openresty_docker_image": "openresty/openresty:alpine",
|
||||
"heartbeat_interval": 30000,
|
||||
"sync_interval": 30000,
|
||||
"request_timeout": 10000
|
||||
@@ -161,8 +161,8 @@ swag init -g main.go -o docs
|
||||
"server_url": "http://127.0.0.1:3000",
|
||||
"discovery_token": "replace-with-global-discovery-token",
|
||||
"data_dir": "./data",
|
||||
"nginx_container_name": "atsflare-nginx",
|
||||
"nginx_docker_image": "nginx:stable-alpine",
|
||||
"openresty_container_name": "atsflare-openresty",
|
||||
"openresty_docker_image": "openresty/openresty:alpine",
|
||||
"heartbeat_interval": 30000,
|
||||
"sync_interval": 30000,
|
||||
"request_timeout": 10000
|
||||
@@ -172,12 +172,12 @@ swag init -g main.go -o docs
|
||||
说明:
|
||||
|
||||
* `agent_version` 由 Agent 代码内常量提供,升级时同步修改代码
|
||||
* `nginx_version` 由 Agent 启动时执行命令自动探测
|
||||
* 为兼容现有 Agent / Server API,运行时版本仍通过 `openresty_version` 字段上报,但其值现在表示 OpenResty 版本
|
||||
* 时间字段使用毫秒整数
|
||||
* `agent_token` 与 `discovery_token` 至少填写一个
|
||||
* 若 `agent_token` 为空且 `discovery_token` 存在,Agent 会自动注册并写回新的专属 `agent_token`
|
||||
* `node_name` 与 `node_ip` 可省略,未填写时自动探测
|
||||
* 未配置 `nginx_path` 时,默认使用 Docker Nginx 容器
|
||||
* 未配置 `openresty_path` 时,默认使用 Docker OpenResty 容器
|
||||
|
||||
---
|
||||
|
||||
@@ -223,8 +223,8 @@ go build -o atsflare-agent ./cmd/agent
|
||||
2. 自动注册模式下完成 Token 置换
|
||||
3. 拉取激活版本
|
||||
4. 写入路由配置与必要证书文件
|
||||
5. 执行 `nginx -t`
|
||||
6. 执行 `nginx -s reload`
|
||||
5. 执行 `openresty -t`
|
||||
6. 执行 `openresty -s reload`
|
||||
7. 上报应用结果
|
||||
|
||||
### 5.4 验证管理端状态
|
||||
@@ -238,7 +238,7 @@ go build -o atsflare-agent ./cmd/agent
|
||||
|
||||
### 5.5 验证失败回滚
|
||||
|
||||
人为制造 `nginx -t` 失败后再次发布,预期:
|
||||
人为制造 `openresty -t` 失败后再次发布,预期:
|
||||
|
||||
* Agent 回滚旧配置
|
||||
* 节点 `last_error` 更新
|
||||
@@ -276,11 +276,11 @@ pnpm build
|
||||
* GitHub 使用 [.github/workflows/release.yml](.github/workflows/release.yml),保留制品上传/下载分阶段流程
|
||||
* Gitea 使用 [.gitea/workflows/release.yml](.gitea/workflows/release.yml),在单个 Job 内完成前端构建、服务端/Agent 多平台编译与 Release 发布,避免依赖 Gitea 目前不兼容的 `upload-artifact@v4`、`download-artifact@v4`
|
||||
|
||||
Docker 镜像发布使用 [.github/workflows/docker-image.yml](.github/workflows/docker-image.yml):
|
||||
|
||||
* 仅构建 `atsf_server` 服务端镜像
|
||||
* 发布到 GitHub Container Registry(`ghcr.io/<owner>/<repo>:<tag>`)
|
||||
* 单个工作流通过分架构原生构建再合并 manifest 的方式产出 `linux/amd64` 与 `linux/arm64` 多架构镜像,避免 `arm64` 长时间模拟编译
|
||||
Docker 镜像发布使用 [.github/workflows/docker-image.yml](.github/workflows/docker-image.yml):
|
||||
|
||||
* 仅构建 `atsf_server` 服务端镜像
|
||||
* 发布到 GitHub Container Registry(`ghcr.io/<owner>/<repo>:<tag>`)
|
||||
* 单个工作流通过分架构原生构建再合并 manifest 的方式产出 `linux/amd64` 与 `linux/arm64` 多架构镜像,避免 `arm64` 长时间模拟编译
|
||||
|
||||
---
|
||||
|
||||
|
||||
+6
-6
@@ -21,7 +21,7 @@ ATSFlare 当前定位为内部自用的反向代理控制面,不面向外部
|
||||
* 反代规则管理
|
||||
* 配置预览、发布、激活与回滚
|
||||
* Agent 注册、心跳、同步、应用结果上报
|
||||
* Nginx 配置写入、校验、reload 与失败回滚
|
||||
* OpenResty 配置写入、校验、reload 与失败回滚
|
||||
* HTTPS/TLS 路由支持
|
||||
* 证书托管与域名管理
|
||||
* 节点管理、节点专属 `agent_token`、全局 `discovery_token`
|
||||
@@ -74,8 +74,8 @@ ATSFlare 当前定位为内部自用的反向代理控制面,不面向外部
|
||||
|
||||
* 单二进制
|
||||
* 节点本地执行
|
||||
* `nginx_path` 优先
|
||||
* 未配置 `nginx_path` 时默认使用 Docker Nginx
|
||||
* `openresty_path` 优先
|
||||
* 未配置 `openresty_path` 时默认使用 Docker OpenResty
|
||||
* 生成资源默认落在 `./data`,可由 `data_dir` 覆盖
|
||||
|
||||
### 4.3 Frontend
|
||||
@@ -100,7 +100,7 @@ ATSFlare Server (Gin + SQLite + Web UI)
|
||||
ATSFlare Agent (register / heartbeat / sync / apply / update)
|
||||
|
|
||||
v
|
||||
Local Nginx or Docker Nginx
|
||||
Local OpenResty or Docker OpenResty
|
||||
|
|
||||
v
|
||||
Origin
|
||||
@@ -150,7 +150,7 @@ ATSFlare Agent (register / heartbeat / sync / apply / update)
|
||||
发布规则:
|
||||
|
||||
1. 读取全部启用的 `proxy_routes`
|
||||
2. 渲染完整 Nginx 配置
|
||||
2. 渲染完整 OpenResty 配置
|
||||
3. 计算 `checksum`
|
||||
4. 写入 `config_versions`
|
||||
5. 切换激活版本
|
||||
@@ -185,7 +185,7 @@ ATSFlare Agent (register / heartbeat / sync / apply / update)
|
||||
* 周期性心跳与同步
|
||||
* 运行参数接收
|
||||
* 本地路由与证书文件写入
|
||||
* `nginx -t` / `nginx -s reload`
|
||||
* 执行 `openresty -t` / `openresty -s reload`
|
||||
* 失败回滚
|
||||
* 自我更新
|
||||
* 应用结果上报
|
||||
|
||||
@@ -36,8 +36,8 @@
|
||||
|
||||
* 单二进制
|
||||
* 节点本地执行
|
||||
* `nginx_path` 优先
|
||||
* 无 `nginx_path` 时默认 Docker Nginx
|
||||
* `openresty_path` 优先
|
||||
* 无 `openresty_path` 时默认 Docker OpenResty
|
||||
* 生成资源默认写入 `./data`,由 `data_dir` 统一覆盖
|
||||
|
||||
### 2.3 Frontend
|
||||
@@ -81,7 +81,7 @@
|
||||
* `config`
|
||||
* `heartbeat`
|
||||
* `sync`
|
||||
* `nginx`
|
||||
* `openresty`(保留目录名,内部负责 OpenResty 运行时管理)
|
||||
* `state`
|
||||
* `httpclient`
|
||||
* `protocol`
|
||||
@@ -170,7 +170,7 @@ Agent:
|
||||
|
||||
禁止:
|
||||
|
||||
* 将本地 Nginx 操作暴露为远程执行接口
|
||||
* 将本地 OpenResty 操作暴露为远程执行接口
|
||||
* 在日志中打印完整 Token
|
||||
|
||||
---
|
||||
@@ -180,7 +180,7 @@ Agent:
|
||||
发布逻辑必须保持以下事实:
|
||||
|
||||
* 发布时读取全部启用的 `proxy_routes`
|
||||
* 生成完整 Nginx 配置
|
||||
* 生成完整 OpenResty 配置
|
||||
* 计算 `checksum`
|
||||
* 写入 `config_versions`
|
||||
* 通过切换 `is_active` 激活版本
|
||||
@@ -205,8 +205,8 @@ Agent 必须满足:
|
||||
* 周期性心跳与同步
|
||||
* 发现新版本时先备份旧文件
|
||||
* 写入新路由与必要证书文件
|
||||
* 先执行 `nginx -t`
|
||||
* 成功后执行 `nginx -s reload`
|
||||
* 先执行 `openresty -t`
|
||||
* 成功后执行 `openresty -s reload`
|
||||
* 失败时自动回滚并上报最终结果
|
||||
* 支持自动注册与 Token 置换
|
||||
* 支持接收 Server 下发运行参数
|
||||
@@ -249,7 +249,7 @@ Agent 必须满足:
|
||||
* Agent 注册
|
||||
* 心跳异常
|
||||
* 配置下载失败
|
||||
* Nginx 校验或 reload 成功/失败
|
||||
* OpenResty 校验或 reload 成功/失败
|
||||
* 回滚触发
|
||||
|
||||
要求:
|
||||
|
||||
Reference in New Issue
Block a user