跳到主要内容

HTTPS 与反向代理

使用 TLS 加密、反向代理或托管隔道保护你的 Open WebUI 部署。

HTTPS 对用户与 Open WebUI 之间的所有流量进行加密,保护聊天历史、凭据和上传的文件。它同时是语音通话等浏览器功能的必要条件,这些功能需要安全上下文才能访问麦克风。

语音通话需要 HTTPS

现代浏览器在非 HTTPS 源上阻止麦克风访问。除非你在 localhost 上,否则语音通话将无法在浏览器过纯 HTTP。


选择你的方式

方式适用场景TLS 管理
Cloudflare Tunnel无需开放端口的生产环境自动(Cloudflare 边缘)
ngrok开发和测试自动(ngrok 边缘)
Tailscale跨设备私有访问自动(tailscale serve)
Nginx完全控制的自托管生产环境手动或 Let's Encrypt
Caddy最简配置的自托管生产环境自动(Let's Encrypt)
HAProxy高可用/负载均衡手动或 Let's Encrypt
云负载均衡AWS ALB、GCP LB、Azure 应用网关由云提供商管理

快速建议

  • 只想尽快启用 HTTPS? 使用 Cloudflare Tunnel(生产环境)或 ngrok(开发环境)。无需管理证书,无需开放端口。
  • 已经在运行反向代理? 添加 Caddy(自动证书)或 Nginx(最大控制权)。
  • 需要负载均衡? 使用 HAProxy 或你的云提供商的负载均衡器。

关键配置注意事项

无论选择哪种方式,请记住以下要点:

设置重要性
WEBUI_URL设置为你的公共 HTTPS URL,使 OAuth 回调和内部链接能正确解析
CORS_ALLOW_ORIGIN必须与你的公共 URL 匹配,否则 WebSocket 连接将静默失败
代理缓冲关闭SSE 流式传输的必要条件。开启缓冲会导致聊天响应中 Markdown 渲染异常
WebSocket 支持确保你的代理传递 UpgradeConnection 头部以支持实时功能
延长超时LLM 响应可能需要几分钟。将代理读取超时至少设为 300 秒
本内容仅供参考,不构成任何保证、担保或合同承诺。Open WebUI 按“现状”提供。请参阅您的许可协议 以了解适用条款。