Higress 之四 · 增强、补丁与完整附录
前置:之三路由已通
HTML:
docs/html_cursor/Higress_之四_增强限流鉴权与补丁附录_cursor.html本文含:可选增强、对现有系统补丁、相关排错案例、全量脚本/配置汇总附录
0. 本册涉及凭据(补丁 / 探测 / Console)
| 用途 | 完整值 |
|---|---|
| Higress Console | URL http://192.168.110.207:8001;用户 admin;密码 Higress207admin! |
| LiteLLM / 经 Higress 的模型 Key | sk-litellm-bocheng-207 |
| Xinference 推理 Key | xf-K8H3LiS27H4188XdOyWJj74MWMOlIR9tZbiybDbxbSas7eAI |
| Xinference 管理员(launch 模型时) | 用户 admin;密码 admin1234 |
| Dify 控制台 | 邮箱 38205036@qq.com;密码 Difyai123456 |
Dify 模型供应商 API Key(指到 LiteLLM 或 …/llm/v1) | sk-litellm-bocheng-207 |
| vLLM 上游 Key | 123456 |
| Higress ENC_KEY | bocheng207higressenckey32chars!! |
改 Dify「API Base」时:Base 用 http://192.168.110.207:18080/llm/v1(或容器内探测通的地址),Key 仍用 sk-litellm-bocheng-207。
系列总表见之一 §0。
1. 一期默认策略
- Higress 透传
Authorization,不在网关再验一把。 - 限流 / JWT / WAF:可选,在 Console「插件」中按路由挂载。
2. 可选:基础限流(Console)
- 打开
http://192.168.110.207:8001→ 登录。 - 插件 → 选择限流类 WASM(名称以当前 Console 列表为准)。
- 作用域选路由
llm,配置 QPS。 - 压测或连续 curl,确认出现 429。
3. 可选补丁:Dify 模型供应商改走 Higress
3.1 目的
让 Dify 内部调模型也经总入口,便于以后统一限流/观测。 不做此补丁时:Dify 继续直连 :4000,与「对外走 Higress、对内直连」兼容——本次落地默认即此状态。
3.2 详细步骤
- 浏览器打开 Dify:
http://192.168.110.207/(或经http://dify.ai.local:18080/)。 - 进入 设置 → 模型供应商(OpenAI 兼容 / 已有 LiteLLM 条目)。
- 将 API Base / Base URL
- 从:
http://192.168.110.207:4000/v1 - 改为:
http://192.168.110.207:18080/llm/v1
- 若 Dify 跑在 Docker 内且容器访问不了宿主机局域网 IP:在 api / worker / plugin_daemon 容器内先探测:
docker exec docker-api-1 curl -sS -m 5 \
-H "Authorization: Bearer sk-litellm-bocheng-207" \
http://192.168.110.207:18080/llm/v1/models | head -c 200若失败,再试 Docker bridge 网关(本机曾为 192.168.200.8)或 host.docker.internal(若已加 extra_hosts):
docker exec docker-api-1 curl -sS -m 5 \
-H "Authorization: Bearer sk-litellm-bocheng-207" \
http://192.168.200.8:18080/llm/v1/models | head -c 200把探测成功的地址填进 Dify API Base。
- API Key 仍为:
sk-litellm-bocheng-207。 - 保存 → 工作室任选 Agent 发一句短对话验证。
3.3 回滚
API Base 改回直连 LiteLLM(宿主机或容器可达的 :4000/v1),保存后再测一轮对话。
4. 本次实装相关案例(增强/补丁视角)
案例 A:改 Dify 走 Higress 前必须先确认「容器 → 18080」通
风险
只在 Windows/宿主机上 curl :18080 成功,就把 API Base 改成 192.168.110.207:18080,但 Dify api 容器出网策略不同 → Agent 全部模型调用失败。
推荐操作顺序
- 宿主机验收通过(之三
Higress_03_验收.sh)。 - 再在
docker-api-1(或实际 api 容器名)内 curl Higress。 - 通了才改 Dify 供应商;不通则先修 Docker 网络/
extra_hosts,不要先改控制台。
案例 B:限流插件名称随版本变化
现象
文档若写死某个插件 id,换 Higress Console 小版本后「插件市场找不到」。
处理
- 以 Console 当前列表为准,不要死记旧截图。
- 配好后把插件实例导出/截图放到
patches_cursor/Higress部署/,并在本文件追加一节「本环境实际插件名」。 - 一期可不启用限流;优先保证路由稳定。
案例 C:忘记 hosts 时误以为 Host 路由失败
现象
浏览器直接打开 http://192.168.110.207:18080/,进的是 Higress 默认 landing,而不是 Dify。
原因
未带 Host: dify.ai.local,打到默认路由 / → Console landing。
验证
# 错误预期:没有 Host
curl -sS -o /dev/null -w "%{http_code}\n" http://192.168.110.207:18080/
# 正确:
curl -sS -o /dev/null -w "%{http_code}\n" \
-H "Host: dify.ai.local" http://192.168.110.207:18080/Windows C:\Windows\System32\drivers\etc\hosts 增加:
192.168.110.207 dify.ai.local5. 运维速查
/opt/higress/bin/status.sh
/opt/higress/bin/restart.sh
bash /opt/workbuddy/scripts_bash_cursor/Higress部署/Higress_02_配置路由.sh
bash /opt/workbuddy/scripts_bash_cursor/Higress部署/Higress_03_验收.sh6. 系列索引
Higress_之一_理论与架构_cursorHigress_之二_Compose安装与控制台_cursor(含安装脚本全文)Higress_之三_总入口路由配置与验收_cursor(含路由/验收脚本全文)- 本文(补丁 + 汇总)
Higress_之五_新增接口场景全解_cursor(何时改谁)Higress_之六_企业级能力展示_cursor(证书/限流/WAF/SSE/缓存等)
附录:仓库文件路径总表
| 文件 | 作用 | 全文所在文档 |
|---|---|---|
scripts_bash_cursor/Higress部署/Higress_00_初始化Console.sh | Console init/login | 之四附录 C(仓库同步) |
scripts_bash_cursor/Higress部署/Higress_01_部署.sh | 安装/启动 | 之二附录 E |
scripts_cursor/Higress部署/Higress_01_部署.py | Windows 触发部署 | 之二附录 D |
scripts_cursor/Higress部署/_bootstrap.py | sys.path | 之二附录 C |
scripts_bash_cursor/Higress部署/Higress_02_配置路由.sh | 配路由 | 之三附录 A |
scripts_bash_cursor/Higress部署/Higress_03_验收.sh | 验收 | 之三附录 B |
scripts_bash_cursor/Higress部署/Higress_04_探测Dify容器访问Higress.sh | 改 Dify API Base 前探测 | 之四附录 E |
patches_cursor/Higress部署/install_options.env | 端口/ENC_KEY | 之二附录 A |
patches_cursor/Higress部署/console.env | Console 账号 | 之二附录 B |
scripts_cursor/_config.py 中 HIGRESS_* | 常量 | 之一附录 A |
以下再附一份 之二/之三脚本的合并拷贝,便于只打印本册时也能离线照做(与仓库文件保持一致)。
附录 A:install_options.env(完整)
HIGRESS_DEST=/opt/higress
GATEWAY_HTTP_PORT=18080
GATEWAY_HTTPS_PORT=18443
CONSOLE_PORT=8001
NACOS_PORT=8848
DATA_ENC_KEY=bocheng207higressenckey32chars!!
BACKEND_LLM=http://HOST_GATEWAY:4000
BACKEND_DIFY=http://HOST_GATEWAY:80
BACKEND_XF=http://HOST_GATEWAY:9997附录 B:console.env(完整)
与之二附录 B、仓库 patches_cursor/Higress部署/console.env 相同,含:
- Console:
admin/Higress207admin! - LiteLLM:
sk-litellm-bocheng-207 - Xinference:
xf-K8H3LiS27H4188XdOyWJj74MWMOlIR9tZbiybDbxbSas7eAI;管理admin/admin1234 - vLLM:
123456 - Dify:
38205036@qq.com/Difyai123456 - ENC_KEY:
bocheng207higressenckey32chars!!
(全文见之二附录 B,避免三处漂移。)
附录 C:初始化管理员 + 登录(可单独保存为 init_console.sh)
#!/usr/bin/env bash
set -euo pipefail
CONSOLE="${1:-http://127.0.0.1:8001}"
PASS="${HIGRESS_ADMIN_PASS:-Higress207admin!}"
curl -sS -X POST "$CONSOLE/system/init" \
-H "Content-Type: application/json" \
-d "{\"adminUser\":{\"name\":\"admin\",\"displayName\":\"admin\",\"password\":\"$PASS\"}}" || true
echo
curl -sS -c /tmp/hc.ck -b /tmp/hc.ck -X POST "$CONSOLE/session/login" \
-H "Content-Type: application/json" \
-d "{\"username\":\"admin\",\"password\":\"$PASS\"}"
echo附录 D:Higress_01_部署.sh(完整,与之二一致)
见仓库文件:scripts_bash_cursor/Higress部署/Higress_01_部署.sh (全文已印在之二附录 E;此处不重复粘贴第三遍,避免三份漂移。修改时以仓库文件为唯一真源,再同步回之二/之四。)
强制约定:改脚本时同时更新:
- 仓库
scripts_*/patches_* - 之二或之三对应附录
- 必要时重跑
gen_all_html.py生成 HTML
附录 E:Dify 改走 Higress 的探测小脚本(完整)
#!/usr/bin/env bash
# 在 207 上探测:哪些 Base 能从 Dify api 容器访问 Higress→LiteLLM
set -euo pipefail
KEY="${LITELLM_MASTER_KEY:-sk-litellm-bocheng-207}"
API_CTN="${DIFY_API_CONTAINER:-docker-api-1}"
for base in \
"http://192.168.110.207:18080/llm/v1" \
"http://192.168.200.8:18080/llm/v1" \
"http://172.17.0.1:18080/llm/v1" \
"http://host.docker.internal:18080/llm/v1"
do
echo "=== $base ==="
docker exec "$API_CTN" curl -sS -m 5 \
-H "Authorization: Bearer $KEY" \
"$base/models" 2>&1 | head -c 180 || true
echo
done将探测成功的 $base 填入 Dify 模型供应商即可。