跳到主要内容

HTTPS 与反向代理

使用 TLS 加密、反向代理或托管隧道来保障您的 Open WebUI 部署安全。

HTTPS 加密了用户与 Open WebUI 之间的所有流量,保护了聊天历史记录、凭据和上传的文件。同时,对于像语音通话(Voice Calls)这样的浏览器功能也是必需的,因为这些功能需要一个安全上下文才能访问麦克风。

语音通话需要 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 App Gateway由云服务商托管

快速推荐

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

核心配置注意事项

无论您选择哪种方法,请务必记住以下几点:

设置为什么这很重要
WEBUI_URL将此项设置为您的公共 HTTPS URL,以便 OAuth 回调和内部链接可以正确解析
CORS_ALLOW_ORIGIN必须与您的公共 URL 匹配,否则 WebSocket 连接会静默失败
禁用代理缓冲 (Proxy buffering off)SSE 流式传输所需。如果启用缓冲,聊天回复中的 Markdown 渲染将会发生中断
WebSocket 支持确保您的代理透传 UpgradeConnection 标头,以保证实时功能的正常使用
延长超时时间LLM 的回复可能需要数分钟。请将代理的读取超时时间至少设置为 300s
This content is for informational purposes only and does not constitute a warranty, guarantee, or contractual commitment. Open WebUI is provided "as is." See your license for applicable terms.