📎 配套脚本附件正文未内嵌 · 共 8 个 · 点开可在线查看
📚 另需公共库(正文未重复内嵌,点名字直接看):_bootstrap.py
📂 查看全部 761 个脚本附件 →
⚠️ 脚本内含明文凭据(与本页正文一致),请勿在公网环境直接运行。
集成环境 · Higress

Higress 之四 · 增强与附录

可选限流、Dify 改走 Higress、完整脚本附录。

Higress 之四 · 增强、补丁与完整附录

前置:之三路由已通

HTML:docs/html_cursor/Higress_之四_增强限流鉴权与补丁附录_cursor.html

本文含:可选增强、对现有系统补丁、相关排错案例、全量脚本/配置汇总附录


0. 本册涉及凭据(补丁 / 探测 / Console)

用途完整值
Higress ConsoleURL http://192.168.110.207:8001;用户 admin;密码 Higress207admin!
LiteLLM / 经 Higress 的模型 Keysk-litellm-bocheng-207
Xinference 推理 Keyxf-K8H3LiS27H4188XdOyWJj74MWMOlIR9tZbiybDbxbSas7eAI
Xinference 管理员(launch 模型时)用户 admin;密码 admin1234
Dify 控制台邮箱 38205036@qq.com;密码 Difyai123456
Dify 模型供应商 API Key(指到 LiteLLM 或 …/llm/v1)sk-litellm-bocheng-207
vLLM 上游 Key123456
Higress ENC_KEYbocheng207higressenckey32chars!!

改 Dify「API Base」时:Base 用 http://192.168.110.207:18080/llm/v1(或容器内探测通的地址),Key 仍用 sk-litellm-bocheng-207。

系列总表见之一 §0。


1. 一期默认策略


2. 可选:基础限流(Console)

  1. 打开 http://192.168.110.207:8001 → 登录。
  2. 插件 → 选择限流类 WASM(名称以当前 Console 列表为准)。
  3. 作用域选路由 llm,配置 QPS。
  4. 压测或连续 curl,确认出现 429。

3. 可选补丁:Dify 模型供应商改走 Higress

3.1 目的

让 Dify 内部调模型也经总入口,便于以后统一限流/观测。 不做此补丁时:Dify 继续直连 :4000,与「对外走 Higress、对内直连」兼容——本次落地默认即此状态。

3.2 详细步骤

  1. 浏览器打开 Dify:http://192.168.110.207/(或经 http://dify.ai.local:18080/)。
  2. 进入 设置 → 模型供应商(OpenAI 兼容 / 已有 LiteLLM 条目)。
  3. 将 API Base / Base URL
  1. 若 Dify 跑在 Docker 内且容器访问不了宿主机局域网 IP:在 api / worker / plugin_daemon 容器内先探测:
bash
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):

bash
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。

  1. API Key 仍为:sk-litellm-bocheng-207。
  2. 保存 → 工作室任选 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 全部模型调用失败。

推荐操作顺序

  1. 宿主机验收通过(之三 Higress_03_验收.sh)。
  2. 再在 docker-api-1(或实际 api 容器名)内 curl Higress。
  3. 通了才改 Dify 供应商;不通则先修 Docker 网络/extra_hosts,不要先改控制台。

案例 B:限流插件名称随版本变化

现象

文档若写死某个插件 id,换 Higress Console 小版本后「插件市场找不到」。

处理

  1. 以 Console 当前列表为准,不要死记旧截图。
  2. 配好后把插件实例导出/截图放到 patches_cursor/Higress部署/,并在本文件追加一节「本环境实际插件名」。
  3. 一期可不启用限流;优先保证路由稳定。

案例 C:忘记 hosts 时误以为 Host 路由失败

现象

浏览器直接打开 http://192.168.110.207:18080/,进的是 Higress 默认 landing,而不是 Dify。

原因

未带 Host: dify.ai.local,打到默认路由 / → Console landing。

验证

bash
# 错误预期:没有 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 增加:

text
192.168.110.207  dify.ai.local

5. 运维速查

bash
/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_验收.sh

6. 系列索引

  1. Higress_之一_理论与架构_cursor
  2. Higress_之二_Compose安装与控制台_cursor(含安装脚本全文)
  3. Higress_之三_总入口路由配置与验收_cursor(含路由/验收脚本全文)
  4. 本文(补丁 + 汇总)
  5. Higress_之五_新增接口场景全解_cursor(何时改谁)
  6. Higress_之六_企业级能力展示_cursor(证书/限流/WAF/SSE/缓存等)

附录:仓库文件路径总表

文件作用全文所在文档
scripts_bash_cursor/Higress部署/Higress_00_初始化Console.shConsole init/login之四附录 C(仓库同步)
scripts_bash_cursor/Higress部署/Higress_01_部署.sh安装/启动之二附录 E
scripts_cursor/Higress部署/Higress_01_部署.pyWindows 触发部署之二附录 D
scripts_cursor/Higress部署/_bootstrap.pysys.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.envConsole 账号之二附录 B
scripts_cursor/_config.py 中 HIGRESS_*常量之一附录 A

以下再附一份 之二/之三脚本的合并拷贝,便于只打印本册时也能离线照做(与仓库文件保持一致)。

附录 A:install_options.env(完整)

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 相同,含:

(全文见之二附录 B,避免三处漂移。)

附录 C:初始化管理员 + 登录(可单独保存为 init_console.sh)

bash
#!/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;此处不重复粘贴第三遍,避免三份漂移。修改时以仓库文件为唯一真源,再同步回之二/之四。)

强制约定:改脚本时同时更新:

  1. 仓库 scripts_* / patches_*
  2. 之二或之三对应附录
  3. 必要时重跑 gen_all_html.py 生成 HTML

附录 E:Dify 改走 Higress 的探测小脚本(完整)

bash
#!/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 模型供应商即可。