当前位置: 首页 > Linux运维 > Docker > 从零搭建高可用 LLM 网关:Bifrost 部署与上手指南

从零搭建高可用 LLM 网关:Bifrost 部署与上手指南

发布于:2026-3-26 Docker 0条评论 104 views
本站提供Linux服务器运维,自动化脚本编写等服务,如有需要请联系博主微信:xiaozme

做 AI 应用,最头疼的就是对接各家五花八门的 API,还要操心谁挂了、谁慢了。Bifrost 就是为了解决这个麻烦而生的——一个用 Go 写的超轻量开源网关。它能把 OpenAI、Claude、Gemini 等所有模型统一成一个标准接口给你用,不仅速度快,还自带自动故障转移负载均衡

d782a4aaa4dc8d33.png

Bifrost Github开源地址:https://github.com/maximhq/bifrost

Bifrost特点

  • 极致性能:基于 Go 语言开发,延迟低至微秒级,吞吐量远超 Python 类网关(如 LiteLLM)。
  • 统一接口:完美兼容 OpenAI API 标准,一次对接,即可调用全球主流模型(OpenAI, Anthropic, Google, AWS 等)及本地模型。
  • 高可用架构:内置自动故障转移(Failover)和智能负载均衡,单点故障无感知,确保服务永不中断。
  • 智能缓存:支持语义缓存(Semantic Caching),大幅降低重复请求成本并提升响应速度。
  • 轻量部署:无复杂依赖,提供官方 Docker 镜像,非常适合容器化环境和资源受限场景。
  • 可观测性强:内置详细的请求日志和监控指标,方便追踪耗时、错误率及令牌消耗。
  • 灵活路由:支持基于模型名称、用户标签或自定义规则的流量分发策略。

Bifrost对比New API

目前国内主流大模型常用网关或许是 New API,而 Bifrost 作为新兴的高性能方案,两者在功能上既有重叠也有显著差异。以下是对比分析,没有好坏之分,大家可以根据自身场景按需选择。

特性BifrostNew API(One-API)
性能⬆️ 极高
部署难度⬆️ 简单中等
适用场景企业内部/个人开发者:追求极致稳定、低延迟、多模型容灾商家/站长:想要搭建一个“卖 API 密钥”的网站
模型与生态丰富,对国外大模型支持较好,国内模型支持较少。⬆️ 非常丰富,国内外大模型支持都比较好。
特色工程功能⬆️ 语义缓存 (Semantic Caching)、自适应负载均衡、自动故障转移 (Failover)、MCP(模型上下文协议)支持。⬆️ 模型重定向、更细致的计费粒度
WEB界面简洁,但只支持英文⬆️ 精美,支持多语言

Docker Compose部署Bifrost

Bifrost部署非常简单,通过Docker Compose只需要30s即可完成部署。新建compose.yaml文件,填写下面的内容:

services:
  bifrost:
    image: maximhq/bifrost
    container_name: bifrost
    ports:
      - "8080:8080" 
    user: "0:0"
    volumes:
      - ./data:/app/data 
    restart: unless-stopped

然后输入docker compose up -d运行,成功后访问http://IP:8080

注意这里user: "0:0"使用了root用户运行,如果不想使用root用户可以自行传递用户id和组,同时确保当前目录下的./data有对应用户的可写入权限,不然无法运行。

初始化

默认情况下Bifrost是裸奔的,生产环境显然不太安全,不过我们可以在【Settings - Security - Password protect the dashboard 】设置账号、密码访问。

3a931c224722c99e.png

添加渠道

接下来添加大模型渠道,在控制台【Models - Model Providers - Add New Provider】进行添加,内置了Anthropic、OpenAI、Gemini等20多个常见渠道,也可以自定义添加任意OpenAI兼容渠道。

85566819c9019fd8.png

这里以Gemini为例,只需要取个名称、填入密钥,选择可用的大模型(比如:gemini-2.5-flash),然后保存即可,如下图所示。

811758c8af625d97.png

Bifrost支持添加多个上游渠道,选择不同类型的渠道添加即可。

设置虚拟密钥

虚拟密钥可以更加方便和安全的调用Bifrost网关,所以这个步骤也是必须的。我们需要先在控制台【Governance - Virtual Keys】创建虚拟密钥。

9aafcae51b0bfd04.png

创建虚拟密钥的时候可以对额度、Tokens长度等进行限制。

1f85c54d47c31ea2.png

xiaoz原本以为创建虚拟密钥就能直接调用了,结果报401错误,折腾了我好几个小时才解决。原因是创建虚拟密钥后,默认不支持直接用虚拟密钥调用(有点反人类),需要在安全设置中单独启用。

具体的操作步骤:先在控制台【Settings - Security】把下面3个选项全部勾选。

  • Disable authentication on inference calls
  • Enforce Virtual Keys on Inference
  • Allow Direct API Keys

如下图所示:

243fc8c82b4d2cab.png

然后保存,这样就能用虚拟密钥调用了。

调用API

Bifrost网关完全兼容OpenAI格式,curl命令调用方式如下:

curl -X POST http://IP:8080/v1/chat/completions \
  -H "Content-Type: application/json" \
--header 'Authorization: Bearer Virtual Keys' \
  -d '{
    "model": "gemini/gemini-2.5-flash",
    "messages": [
      {"role": "user", "content": "Hello!"}
    ]
  }'
  • Virtual Keys改成你刚刚创建的虚拟密钥
  • model那里需要添加渠道前缀,比如之前我添加了Gemini这个渠道以及对应的gemini-2.5-flash模型,那么完整的模型ID为:gemini/gemini-2.5-flash

Nginx反向代理

生产环境一般不使用IP访问,建议通过Nginx反向代理配置域名和SSL访问,下面的Nginx反向代理配置您可以参考:

location / {
        proxy_pass http://IP:8080;

        client_max_body_size 64m;

        # Set timeout to 120s
        proxy_connect_timeout 120s;
        proxy_send_timeout 300s;
        proxy_read_timeout 300s;

        # Standard headers
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

        # Connection settings for streaming
        proxy_http_version 1.1;
        proxy_cache_bypass $http_upgrade;
        proxy_set_header Accept-Encoding gzip;

    }

路由规则

Bifrost还支持创建复杂的路由规则,从而实现后端AI大模型的负载均衡和故障转移,从而保障稳定性和高可用,由于篇幅有限,无法详细展开说明,后续将单独用一篇文章来讲解Bifrost的路由规则配置。

结语

Bifrost 凭借极致性能与轻量部署,成为构建高可用 AI 后端的利器。虽然它在中文生态和计费功能上不如 New API 丰富,但在追求低延迟、自动容灾的自用场景下优势明显。希望本文能帮你快速搭建专属网关,让模型调用更稳、更快。后续我将深入讲解路由规则配置,敬请期待。

Bifrost Github开源地址:https://github.com/maximhq/bifrost


发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注