连接错误
本 页汇总 OPL 数据空间中常见的连接问题、产生原因以及排查方法。
HTTPS、TLS、CORS 与 WebSocket
如果你在反向代理或 HTTPS 场景下使用 OPL 数据空间,连接问题往往来自 CORS、TLS、WebSocket 或 Cookie 配置不完整。
常见症状
- 聊天里返回空对象,如
"{}" - 流式响应解析报错,如
"Unexpected token ... is not valid JSON" - 流式输出时 markdown 乱码
- 浏览器控制台出现 WebSocket 连接失败
- CLI 日志里出现 WebSocket 失败
- 登录状态异常或会话丢失
- 浏览器开发者工具里出现 CORS 错误
- HTTPS 页面里出现 mixed content 警告
HTTPS + 反向代理的关键配置
WEBUI_URL=https://your-open-webui-domain.com
CORS_ALLOW_ORIGIN="https://yourdomain.com;http://yourdomain.com;https://yourip;http://localhost:3000"
WEBUI_SESSION_COOKIE_SECURE=true
WEBUI_AUTH_COOKIE_SECURE=true
WEBUI_SESSION_COOKIE_SAME_SITE=lax
WEBUI_AUTH_COOKIE_SAME_SITE=lax
ENABLE_WEBSOCKET_SUPPORT=true
WEBSOCKET_MANAGER=redis
WEBSOCKET_REDIS_URL=redis://redis:6379/1要点:
WEBUI_URL对 OAuth / SSO 尤其关键CORS_ALLOW_ORIGIN要覆盖所有访问方式,包括域名、IP、localhost、HTTP/HTTPS 与端口- 开启 HTTPS 时,要同步打开 cookie 的
secure
WEBUI_URL 的注意事项
它是 PersistentConfig。若实例已经启动过,再改环境变量可能不会立即生效。常见处理方式:
- 临时关闭
ENABLE_PERSISTENT_CONFIG - 在管理面板中直接修改 WebUI URL
- 在首次启动前就写对
反向代理 / TLS
如果你需要更完整的反向代理和 HTTPS 配置示例,可查看 HTTPS Reference。
WebSocket 排查
WebSocket 排查
v0.5.0 以后, OPL 数据空间强依赖 WebSocket。若它无法工作:
- 检查反向代理是否正确转发
Upgrade与Connection头 - 检查 CORS 设置
- 看浏览器控制台里的 WebSocket 报错
- 临时绕过代理,直接连 OPL 数据空间,确认问题是否来自代理层
- 如果使用 HAProxy 或 Nginx,确认没有因为 HTTP/2 和 WebSocket 的兼容问题导致卡死
多实例部署下,必须配 Redis:
ENABLE_WEBSOCKET_SUPPORT=true
WEBSOCKET_MANAGER=redis
WEBSOCKET_REDIS_URL=redis://redis:6379/1更多内容可参考:
快速检查清单
- 正确设置
WEBUI_URL CORS_ALLOW_ORIGIN覆盖全部入口- HTTPS 下开启安全 Cookie
- 反向代理支持 WebSocket
- 正确设置
X-Forwarded-Proto - 配置 HTTP → HTTPS 跳转
- 如果使用 Nginx,关闭代理缓冲
流式响应 markdown 乱码
如果在流式输出中看到了裸露的 ##、** 等 markdown 片段,而关闭 streaming 后又恢复正常,原因通常是 Nginx proxy buffering。
解决方式是在反向代理里关闭缓冲:
location / {
proxy_pass http://your-open-webui-upstream;
proxy_buffering off;
proxy_cache off;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}关闭缓冲不仅能修复 markdown 断裂,也会显著改善流式速度。
前端连接与后端连接的差异
OPL 数据空间里很多功能既支持“用户直连”,也支持“管理员全局连接”。这两者的网络位置不同。
| 请求发起方 | localhost 指向哪里 | 典型场景 |
|---|---|---|
| 浏览器(前端) | 用户当前使用的那台机器 | 用户自定义工具、直连终端、Direct Connections |
| OPL 数据空间后端 | 运行 OPL 数据空间的宿主机或容器 | 全局工具服务、管理员终端、Ollama / OpenAI 连接 |
因此,同一个 URL 在前端能用、在后端却失败是很常见的。
后端连接应优先使用:
- Docker service name,例如
http://open-terminal:8000 host.docker.internal- 内网 IP
这个规律适用于 Tool Server、Open Terminal、Ollama、OpenAI API 端点等所有由后端代发请求的连接。
连接 Ollama 失败
连接 Ollama 失败
如果 OPL 数据空间连不上 Ollama,通常是因为 Ollama 只监听了 127.0.0.1。
处理方式:
- 设置
OLLAMA_HOST=0.0.0.0 - 确认它真的生效在 systemd、Docker 或 shell 配置中
- 重启 Ollama
其他常见连接问题
模型列表加载问题:界面缓慢或端点不可达
如果你保存了一个不可达的模型端点,管理设置页可能会因为反复拉取模型列表而变慢甚至卡住。常见处理方式:
- 暂时把
AIOHTTP_CLIENT_TIMEOUT_MODEL_LIST调小 - 用后端视角可访问的地址替换不可达 URL
- 对外部 provider 使用模型白名单,减少
/models请求的成本
内部工具的 SSL 证书问题
如果内部工具、代理服务或公司内网 HTTPS 端点出现证书错误,通常需要补充信任链或配置自定义 CA。详见 自定义 CA 证书库。
如果你遇到的是模型列表加载缓慢、不可达端点导致设置页卡死、后台代理 URL 指向错误、SSE 被反向代理截断等问题,可以优先从以下方向排查:
- 端点 URL 是否从后端视角可达
/v1之类的必需路径是否遗漏- 代理是否改写或缓存了流式响应
- CORS 与 Cookie 是否覆盖了真实访问路径
- 多副本部署下是否已接好 Redis 与共享状态