open webui 部署 以及解决,首屏加载缓慢,nginx反向代理访问404,WebSocket后端服务器链接失败等问题
项目地址:GitHub - open-webui/open-webui: User-friendly AI Interface (Supports Ollama, OpenAI API, ...)
选择了docker部署
如果 Ollama 在您的计算机上,请使用以下命令
docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main
参数详解
1. -d
- 含义:此参数表示以 “分离”(detached)模式运行容器。即容器在后台运行,不会将容器的标准输出和错误输出直接显示在终端中。
- 作用:使得用户在启动容器后可以继续在当前终端执行其他命令,而无需等待容器运行结束。
2. -p 3000:8080
- 含义:该参数用于进行端口映射,格式为
主机端口:容器端口。这里将主机的3000端口映射到容器内部的8080端口。 - 作用:外部客户端可以通过访问主机的
3000端口来间接访问容器内部运行在8080端口上的服务。
3. --add-host=host.docker.internal:host-gateway
- 含义:向容器的
/etc/hosts文件中添加一条主机记录。host.docker.internal是一个自定义的主机名,host-gateway代表 Docker 主机的 IP 地址。 - 作用:在容器内部,当使用
host.docker.internal这个主机名时,会解析到 Docker 主机的 IP 地址,方便容器与主机进行通信。
4. -v open-webui:/app/backend/data
- 含义:此为挂载卷(volume)的操作。
open-webui是一个 Docker 卷的名称,/app/backend/data是容器内部的目标路径。 - 作用:将名为
open-webui的 Docker 卷挂载到容器内的/app/backend/data目录。这样容器内该目录的数据会被存储在 Docker 卷中,实现数据的持久化,即使容器被删除,数据也不会丢失。
5. --name open-webui
- 含义:为新创建的容器指定一个名称,这里将容器命名为
open-webui。 - 作用:方便后续对容器进行管理和操作,例如使用
docker stop open-webui可以停止该容器,使用docker logs open-webui可以查看容器的日志。
6. --restart always
- 含义:设置容器的重启策略为
always。即无论容器因何种原因停止(如正常退出、异常崩溃等),Docker 都会自动尝试重新启动该容器。 - 作用:确保容器在各种情况下都能保持运行状态,提高服务的可用性。
7. ghcr.io/open-webui/open-webui:main
- 含义:指定要使用的 Docker 镜像。
ghcr.io是 GitHub Container Registry 的域名,open-webui/open-webui是镜像的名称,main是镜像的标签。 - 作用:从 GitHub Container Registry 拉取
open-webui/open-webui镜像的main版本,并基于该镜像创建并启动容器。
如果 Ollama 位于其他服务器上,请使用以下命令:
要连接到另一台服务器上的 Ollama,请将 更改为服务器的 URL:OLLAMA_BASE_URL
docker run -d -p 3000:8080 -e OLLAMA_BASE_URL=https://example.com -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main
部署完成后可直接访问 ip+3000端口

解决访问过程中的一些问题
首次加载缓慢白屏等问题
问题原因 接口 api/models 调用加载模型列表缓慢,访问了默认配置的地址不断的尝试最后失败了
进入管理员面板
OpenAI API默认 chart gpt的访问链接 删除掉
Ollama API默认链接 删除掉
再次访问就快很多了,要注意如果配置了一个校验链接不通的地址又会出现这个情况

配置nginx方向代理后,页面静态资源访问404、WebSocket后端服务器链接失败问题
基于宝塔面板的配置
server
{listen 80;server_name chart.xxx.com;index index.php index.html index.htm default.php default.htm default.html;root /www/wwwroot/chart.xxx.com;#ERROR-PAGE-START 错误页配置,可以注释、删除或修改error_page 404 /404.html;#反向代理到open webuilocation / {proxy_pass http://127.0.0.1:3000;}#需要配置开启代理到WebSocket后端服务器 不然访问时候WebSocket链接失败location /ws {# 允许客户端发起跨域请求add_header 'Access-Control-Allow-Origin' '*';add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';add_header 'Access-Control-Allow-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization';# 代理到WebSocket后端服务器proxy_pass http://127.0.0.1:3000;# 启用WebSocket支持proxy_http_version 1.1;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection "Upgrade";proxy_set_header Host $host;# 可选:设置代理超时时间proxy_read_timeout 86400;}#禁止访问的文件或目录location ~ ^/(\.user.ini|\.htaccess|\.git|\.env|\.svn|\.project|LICENSE|README.md){return 404;}#如果存在静态资源访问配置 缓存啥的#需要配置代理到内部的open webui 服务 不然访问404location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)${proxy_pass http://127.0.0.1:3000;expires 30d; #这是一个用于设置缓存过期时间的指令error_log /dev/null;access_log /dev/null;}#如果存在静态资源访问配置缓存#需要配置代理到内部的open webui 服务 不然访问404location ~ .*\.(js|css)?${proxy_pass http://127.0.0.1:3000;expires 12h; #这是一个用于设置缓存过期时间的指令error_log /dev/null;access_log /dev/null;}
}相关文章:
open webui 部署 以及解决,首屏加载缓慢,nginx反向代理访问404,WebSocket后端服务器链接失败等问题
项目地址:GitHub - open-webui/open-webui: User-friendly AI Interface (Supports Ollama, OpenAI API, ...) 选择了docker部署 如果 Ollama 在您的计算机上,请使用以下命令 docker run -d -p 3000:8080 --add-hosthost.docker.internal:host-gatewa…...
交通物联网:概念、历史、现状与展望
交通物联网:概念、历史、现状与展望 李升伟 李昱均 一、概念 交通物联网(Internet of Vehicles, IoV)是物联网(IoT)在交通领域的延伸,旨在通过信息传感设备,实现车、路、人、云之间的全方位连…...
如何实现应用程序与中间件的类进行隔离
以下是一些可以实现类似阿里巴巴 Pandora 功能的框架和工具,这些项目可以帮助你实现类隔离以及中间件和应用的 JAR 包隔离: 1. Pandora Boot Pandora Boot 是阿里巴巴开源的一个基于 Pandora 的轻量级隔离容器,用于管理第三方包,…...
MySQL 数据库基础
1. MySQL 数据库基础 在这一部分,我们将学习 MySQL 的基本概念和常见的数据库操作,帮助你掌握如何创建数据库、表,并进行数据的增、删、改操作。同时,我们还会探讨一些常见的错误示例及其原因,帮助你避免常见的陷阱。…...
微服务即时通信系统---(三)框架学习
目录 brpc RPC框架 核心概念 工作原理 介绍 安装 头文件包含和编译时指明库 类与接口介绍 日志输出类与接口 protobuf类与接口 Closure类 RpcController类 服务端类与接口 ServerOptions类 Server类 ClosureGuard类 HttpHeader类 Controller类 客户端类与…...
解决Spring Data JPA set值后自动更新到数据库问题
出现问题: 通过EntityManager查询出数据保存到对象中,但是向对象set值后就自动更新到数据库中去了。 Hibernate对象的三种状态 1、瞬时态:对象刚new出来,还未通过save方法保存到数据库,或通过游离态对象、持久化态对象…...
心理咨询小程序的未来发展
还在眼巴巴看着心理咨询行业的巨大蛋糕却无从下口?今天就来聊聊心理咨询小程序的无限潜力 据统计,全球超 10 亿人受精神心理问题困扰,国内心理健康问题也日益突出,心理咨询需求猛增。可传统心理咨询预约难,费用高&…...
STM32-智能台灯项目
一、项目需求 1. 红外传感器检测是否有人,有人的话实时检测距离,过近则报警;同时计时,超过固定时间则报警; 2. 按键 1 切换工作模式:智能模式、按键模式、远程模式; 3. 智能模式下,根…...
c# —— StringBuilder 类
StringBuilder 类是 C# 和其他一些基于 .NET Framework 的编程语言中的一个类,它位于 System.Text 命名空间下。StringBuilder 类表示一个可变的字符序列,它是为了提供一种比直接使用字符串连接操作更加高效的方式来构建或修改字符串。 与 C# 中的 stri…...
Linux 核心架构与组件(2025更新中)
一、Linux 核心架构与组件 内核架构 核心职责: 管理进程生命周期、内存分配、硬件驱动交互及文件系统操作。 模块化设计支持动态加载硬件驱动(如modprobe加载内核模块),提升灵活性和扩展性。 内存管理:…...
Unity打包APK报错 using a newer Android Gradle plugin to use compileSdk = 35
Unity打包APK报错 using a newer Android Gradle plugin to use compileSdk 35 三个报错信息如下 第一个 WARNING:We recommend using a newer Android Gradle plugin to use compileSdk 35This Android Gradle plugin (7.1.2) was tested up to compileSdk 32This warning…...
陀螺匠·企业助手v1.8 产品介绍
陀螺匠企业助手是一套采用Laravel 9框架结合Swoole高性能协程服务与Vue.js前端技术栈构建的新型智慧企业管理与运营系统。该系统深度融合了客户管理、项目管理、审批流程自动化以及低代码开发平台,旨在为企业提供一站式、数字化转型的全方位解决方案,助力…...
文件包含-session2
[题目信息]: 题目名称题目难度文件包含-session22 [题目考点]: 由于网站功能需求,会让前端用户选择要包含的文件,而开发人员又没有对要包含的文件进行安全考虑,就导致攻击者可以通过修改文件的位置来让后台执行任意…...
GitHub免密操作与跨服务器通行:SSH密钥一站式配置指南
作为开发者,与GitHub的安全交互和远程服务器的高效管理是日常工作的核心技能。本文将从零开始,教你如何配置GitHub的SSH密钥认证,并实现免密码远程登录Linux服务器。 一、为什么需要SSH密钥? 更安全的认证方式:相比传统密码,密钥认证几乎无法被暴力破解操作便捷性:免去每…...
PHP入门基础学习四(PHP基本语法)
运算符 运算符,专门用于告诉程序执行特定运算或逻辑操作的符号。根据运算符的作用,可以将PHP语言中常见的运算符分为9类 算数运算符: 是用来处理加减乘除运算的符号 也是最简单和最常用的运算符号 赋值运算符 1. 是一个二元运算符&#x…...
模型蒸馏:让人工智能更智能、更小、更高效的艺术
你有没有想过,我们如何才能让一个需要巨大计算能力的庞大人工智能模型变得更精简、更快速、更强大?答案在于模型蒸馏,这是一种允许知识从大型、计算成本高昂的人工智能系统转移到较小、更高效的系统的技术,而不会牺牲智能。 什么是模型蒸馏 模型蒸馏是一种技术,其…...
git 小乌龟安装包及中文包
git 工具小乌龟不需要输入命令就可以提交,挺方便的,安装完之后鼠标右击就可以看到 链接: https://pan.baidu.com/s/1jqrcrFjKf-bKGcHesxs-YQ 提取码: 8888 复制这段内容后打开百度网盘手机App,操作更方便哦...
MySQL 主从集群同步延迟问题分析与解决方案
MySQL 主从复制(Replication)是构建高可用架构的核心技术,但在实际应用中,主从同步延迟(Replication Lag)是常见且棘手的问题。延迟会导致从库数据不一致、读请求返回旧数据,甚至引发业务逻辑错…...
用HTML5+CSS+JavaScript实现新奇挂钟动画
用HTML5+CSS+JavaScript实现新奇挂钟动画 引言 在技术博客中,如何吸引粉丝并保持他们的关注?除了干货内容,独特的视觉效果也是关键。今天,我们将通过HTML5、CSS和JavaScript实现一个新奇挂钟动画,并将其嵌入到你的网站中。这个动画不仅能让你的网站脱颖而出,还能展示你的…...
医疗AI领域中GPU集群训练的关键技术与实践经验探究(下)
五、医疗 AI 中 GPU 集群架构设计 5.1 混合架构设计 5.1.1 参数服务器与 AllReduce 融合 在医疗 AI 的 GPU 集群训练中,混合架构设计将参数服务器(Parameter Server)与 AllReduce 相结合,能够充分发挥两者的优势,提升训练效率和模型性能。这种融合架构的设计核心在于根…...
MPNet:旋转机械轻量化故障诊断模型详解python代码复现
目录 一、问题背景与挑战 二、MPNet核心架构 2.1 多分支特征融合模块(MBFM) 2.2 残差注意力金字塔模块(RAPM) 2.2.1 空间金字塔注意力(SPA) 2.2.2 金字塔残差块(PRBlock) 2.3 分类器设计 三、关键技术突破 3.1 多尺度特征融合 3.2 轻量化设计策略 3.3 抗噪声…...
Python爬虫(一):爬虫伪装
一、网站防爬机制概述 在当今互联网环境中,具有一定规模或盈利性质的网站几乎都实施了各种防爬措施。这些措施主要分为两大类: 身份验证机制:直接将未经授权的爬虫阻挡在外反爬技术体系:通过各种技术手段增加爬虫获取数据的难度…...
根据万维钢·精英日课6的内容,使用AI(2025)可以参考以下方法:
根据万维钢精英日课6的内容,使用AI(2025)可以参考以下方法: 四个洞见 模型已经比人聪明:以ChatGPT o3为代表的AI非常强大,能运用高级理论解释道理、引用最新学术论文,生成对顶尖科学家都有用的…...
OpenLayers 分屏对比(地图联动)
注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 地图分屏对比在WebGIS开发中是很常见的功能,和卷帘图层不一样的是,分屏对比是在各个地图中添加相同或者不同的图层进行对比查看。…...
【数据分析】R版IntelliGenes用于生物标志物发现的可解释机器学习
禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍流程步骤1. 输入数据2. 特征选择3. 模型训练4. I-Genes 评分计算5. 输出结果 IntelliGenesR 安装包1. 特征选择2. 模型训练和评估3. I-Genes 评分计…...
【分享】推荐一些办公小工具
1、PDF 在线转换 https://smallpdf.com/cn/pdf-tools 推荐理由:大部分的转换软件需要收费,要么功能不齐全,而开会员又用不了几次浪费钱,借用别人的又不安全。 这个网站它不需要登录或下载安装。而且提供的免费功能就能满足日常…...
动态 Web 开发技术入门篇
一、HTTP 协议核心 1.1 HTTP 基础 协议全称 :HyperText Transfer Protocol(超文本传输协议) 默认端口 :HTTP 使用 80 端口,HTTPS 使用 443 端口。 请求方法 : GET :用于获取资源,…...
Netty从入门到进阶(二)
二、Netty入门 1. 概述 1.1 Netty是什么 Netty is an asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients. Netty是一个异步的、基于事件驱动的网络应用框架,用于…...
Python竞赛环境搭建全攻略
Python环境搭建竞赛技术文章大纲 竞赛背景与意义 竞赛的目的与价值Python在竞赛中的应用场景环境搭建对竞赛效率的影响 竞赛环境需求分析 常见竞赛类型(算法、数据分析、机器学习等)不同竞赛对Python版本及库的要求硬件与操作系统的兼容性问题 Pyth…...
CTF show 数学不及格
拿到题目先查一下壳,看一下信息 发现是一个ELF文件,64位的 用IDA Pro 64 打开这个文件 然后点击F5进行伪代码转换 可以看到有五个if判断,第一个argc ! 5这个判断并没有起太大作用,主要是下面四个if判断 根据题目…...
