
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
Unleash Edge是Unleash Proxy的继任者,它位于Unleash API与SDK之间,提供Unleash实例的缓存读副本。这意味着您可以将Unleash实例扩展到数千个连接的SDK,而不会增加对Unleash实例的请求量。
如果您正在寻找连接客户端SDK的最简单方式,可以查看我们的Frontend API;而Unleash Edge专为帮助您扩展Unleash而构建。
Unleash Edge主要用于帮助扩展Unleash实例,适用于需要连接大量客户端SDK的场景。当您的应用需要支持数千个SDK连接,且希望避免增加Unleash服务器请求负载时,Unleash Edge是理想选择。
有关迁移的更多信息,请查看https://github.com/Unleash/unleash-edge/blob/main/migration-guide.md%EF%BC%8C%E5%85%B6%E4%B8%AD%E8%AF%A6%E7%BB%86%E8%AF%B4%E6%98%8E%E4%BA%86Edge%E4%B8%8EProxy%E4%B9%8B%E9%97%B4%E7%9A%84%E5%B7%AE%E5%BC%82%E4%BB%A5%E5%8F%8A%E5%A6%82%E4%BD%95%E5%9C%A8Edge%E4%B8%AD%E5%AE%9E%E7%8E%B0%E7%B1%BB%E4%BC%BC%E8%A1%8C%E4%B8%BA%E3%80%82
运行Unleash Edge最简单的方式是通过Docker。我们已在Docker Hub上发布了https://hub.docker.com/r/unleashorg/unleash-edge/%E3%80%82%E8%87%AAEdge 19.2.0起,建议在STRICT模式下运行(-e STRICT=true)。这意味着您必须在启动时指定Edge使用的令牌(使用-e TOKENS=<逗号分隔的客户端令牌列表>)。STRICT模式确保Edge仅允许客户端令牌访问与其启动时配置的令牌相同或子集的项目。
步骤1:拉取镜像
bashdocker pull docker.xuanyuan.run/unleashorg/unleash-edge
步骤2:启动容器
bashdocker run \ -e UPSTREAM_URL=https://app.unleash-hosted.com/demo/ \ -e TOKENS=<逗号分隔的客户端令牌列表> \ -e STRICT=true \ -p 3063:3063 \ docker.xuanyuan.run/unleashorg/unleash-edge \ edge
启动后应看到类似以下输出:
bash2023-05-10T07:59:47.544611Z INFO actix_server::builder: starting 1 worker 2023-05-10T07:59:47.544907Z INFO actix_server::server: Actix runtime found; starting in Actix runtime
步骤3:验证
要验证代理是否正常运行,可使用curl命令获取评估后的功能切换:
bashcurl http://localhost:3063/api/client/features -H "Authorization: demo-app:default.70fc9102e309558b3395e7852bae426d4bfcc65e3ce868269cc3197b"
预期输出类似:
json{ "version": 2, "features": [ { "name": "snowing", "type": "release", "description": "Enable snowing feature", "createdAt": null, "lastSeenAt": null, "enabled": true, "stale": false, "impressionData": true, "project": "demo-app", "strategies": [ { "name": "flexibleRollout", "sortOrder": null, "segments": null, "constraints": [], "parameters": { "groupId": "snowing", "rollout": "100", "stickiness": "default" } }, { "name": "Users", "sortOrder": null, "segments": [ 115 ], "constraints": [ { "contextName": "country", "operator": "IN", "caseInsensitive": false, "inverted": false, "values": [ "Belgium" ], "value": null } ], "parameters": { "users": "13" } } ], "variants": [ { "name": "989-", "weight": 334, "weightType": "variable", "stickiness": "default", "payload": { "type": "string", "value": "#green" }, "overrides": [] }, { "name": "d", "weight": 333, "weightType": "variable", "stickiness": "default", "payload": { "type": "json", "value": "{ \"op\": \"replace\" }" }, "overrides": [] }, { "name": "fdsfdsf", "weight": 333, "weightType": "variable", "stickiness": "default", "payload": null, "overrides": [] } ] } ... ] }
健康检查端点
您可以通过curl访问健康检查端点来验证Edge是否准备好接收请求:
bashcurl http://localhost:3063/internal-backstage/health
预期输出:
bash{"status":"OK"}%
所有选项可以在docker run unleashorg/unleash-edge之后传递,或作为与以下README中大写名称匹配的环境变量传递。
unleash-edgeunleash-edge edgeunleash-edge offlineunleash-edge用法: unleash-edge [OPTIONS] <COMMAND>
子命令
edge — 以edge模式运行offline — 以offline模式运行选项
-p, --port <PORT> — 服务器监听HTTP流量的端口
默认值:3063
-i, --interface <INTERFACE> — 服务器监听HTTP流量的接口
默认值:0.0.0.0
-w, --workers <WORKERS> — 启动处理请求的工作进程数,默认为物理CPU核心数
默认值:16
--tls-enable — 是否绑定TLS
默认值:false
--tls-server-key <TLS_SERVER_KEY> — 用于TLS的服务器密钥
--tls-server-cert <TLS_SERVER_CERT> — 用于TLS的服务器证书
--tls-server-port <TLS_SERVER_PORT> — 监听HTTPS连接的端口(将使用已定义的接口)
默认值:3043
--instance-id <INSTANCE_ID> — 实例ID,用于指标报告
默认值:01H02BF5PSYFF9SNBGR7MJRW9D
-a, --app-name <APP_NAME> — 应用名称,用于指标报告
默认值:unleash-edge
--markdown-help — 显示Markdown格式的帮助信息
unleash-edge edge以edge模式运行
用法: unleash-edge edge [OPTIONS] --upstream-url <UPSTREAM_URL>
选项
-u, --upstream-url <UPSTREAM_URL> — 上游URL。注意,这是您实例的URL,不带任何尾随的/api后缀
-r, --redis-url <REDIS_URL> — 指向运行中的Redis实例的URL。Edge将使用此实例持久化功能和令牌数据,并在重启后读取。与--backup-folder选项互斥
-b, --backup-folder <BACKUP_FOLDER> — 本地文件夹路径。Edge将在此文件夹中写入功能和令牌数据,并在重启后读取。与--redis-url选项互斥
-m, --metrics-interval-seconds <METRICS_INTERVAL_SECONDS> — 多久向上游发送一次指标
默认值:60
-f, --features-refresh-interval-seconds <FEATURES_REFRESH_INTERVAL_SECONDS> — 每个令牌的刷新间隔(秒)
默认值:10
--token-revalidation-interval-seconds <TOKEN_REVALIDATION_INTERVAL_SECONDS> — 每个令牌的重新验证间隔(秒)
默认值:3600
-t, --tokens <TOKENS> — 启动时获取这些客户端令牌的数据,热启动功能缓存
-H, --custom-client-headers <CUSTOM_CLIENT_HEADERS> — 期望curl头格式(-H -H X-Api-Key: mysecretapikey
-s, --skip-ssl-verification — 如果设置为true,连接上游Unleash服务器时将跳过SSL验证
默认值:false
--pkcs8-client-certificate-file <PKCS8_CLIENT_CERTIFICATE_FILE> — PEM编码的X509格式客户端证书链,叶证书在前。证书链应包含任何应发送给客户端以允许其构建到受信任根的中间证书
--pkcs8-client-key-file <PKCS8_CLIENT_KEY_FILE> — PEM编码的PKCS#8格式叶证书私钥
--pkcs12-identity-file <PKCS12_IDENTITY_FILE> — PKCS12格式的身份文件,通常具有pfx扩展名
--pkcs12-passphrase <PKCS12_PASSPHRASE> — 用于解锁pkcs12文件的密码
--upstream-certificate-file <UPSTREAM_CERTIFICATE_FILE> — 传递给客户端用于构建信任链的额外证书,需要PEM格式(通常为crt或pem扩展名)
unleash-edge offline以offline模式运行
用法: unleash-edge offline [OPTIONS]
选项
-b, --bootstrap-file <BOOTSTRAP_FILE> — 引导文件路径-t, --tokens <TOKENS> — 客户端令牌列表为简化集成,我们开发了代理客户端SDK。您可以在我们的文档中找到所有SDK:
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务