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;}
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/70382.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/70382.shtml
英文地址,請注明出處:http://en.pswp.cn/web/70382.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

docker安裝ros2 并在windows中顯示docker內ubuntu系統窗口并且vscode編程

這里包括docker desktop安裝ros2 humble hawkshill , 安裝xserver(用來在windows中顯示ubuntu中窗口), vscode安裝插件連接docker并配置python的一系列方法 1.安裝xserver 為了能方便的在windows中顯示ubuntu內的窗口,比如rqt窗口 參考文章:https://www.cnblogs.com/larva-zhh…

VMware安裝Centos 9虛擬機+設置共享文件夾+遠程登錄

一、安裝背景 工作需要安裝一臺CentOS-Stream-9的機器環境,所以一開始的安裝準備工作有: vmware版本:VMware Workstation 16 鏡像版本:CentOS-Stream-9-latest-x86_64-dvd1.iso (kernel-5.14.0) …

C/C++ 中 volatile 關鍵字詳解

volatile 關鍵字是一種類型修飾符,用它聲明的類型變量表示可以被某些編譯器未知的因素更改,比如:操作系統、硬件或者其它線程等。遇到這個關鍵字聲明的變量,編譯器對訪問該變量的代碼就不再進行優化,從而可以提供對特殊…

處理器架構、單片機、芯片、光刻機之間的關系

這些術語都涉及到半導體和電子設備的設計與制造,但它們的含義和作用有所不同。下面我會逐個解釋,并描述它們之間的關系: 1. 處理器架構 (Processor Architecture) 處理器架構指的是處理器(CPU)的設計原理和結構。它定…

python之socket編程

Socket編程是計算機網絡編程的基礎,它允許兩臺計算機(或同一個計算機的不同進程)之間進行通信。Python 提供了 socket 模塊,可以很方便地進行 Socket 編程。下面是一些基本的 Socket 編程示例,包括 TCP 和 UDP。 TCP …

Docker 的安全配置與優化(二)

Docker 安全優化策略 (一)多階段構建優化鏡像大小 多階段構建是 Docker 17.05 版本引入的強大功能,它允許在一個 Dockerfile 中定義多個構建階段,每個階段都可以使用不同的基礎鏡像和依賴項,最終只將必要的文件和依賴…

歐洲跨境組網專線:企業出海的高效網絡解決方案

在全球化的背景下,越來越多的企業將業務拓展至海外市場,并在歐洲等地設立分支機構。然而,跨境辦公中常常面臨公網網絡延遲高、打開速度慢、丟包嚴重等問題,這不僅影響辦公效率,還增加了IT維護的難度和成本。針對這一痛…

面陣工業相機提高餐飲業生產效率

餐飲行業是一個快節奏、高要求的領域,該領域對生產過程中每一個階段的效率和準確性都有很高的要求。在食品加工、包裝、質量控制和庫存管理等不同生產階段實現生產效率的優化是取得成功的關鍵步驟。面陣工業相機能夠一次性捕捉對象的二維區域圖像,并支持…

Renesas RH850 IAR編譯時變量分配特定內存

文章目錄 1. 核心作用2. 典型使用場景3. 示例代碼4. 編譯器與鏈接腳本協作5. 注意事項6. 調試驗證在RH850系列微控制器的開發中,#pragma location = "FIRST_RAM" 是一條編譯器指令,其核心含義是 將變量或函數分配到名為 FIRST_RAM 的特定內存段。以下是詳細解釋: …

C++面試題,進程和線程方面(1)

文章目錄 前言進程和線程有什么不同進程,線程的通訊方式什么是鎖為什么說鎖可以使線程安全加鎖有什么副作用總結 前言 這是個人總結進程和線程方面的面試題。如果有錯,歡迎佬們前來指導!!! 進程和線程有什么不同 進程…

視頻mp4垂直拼接 水平拼接

視頻mp4垂直拼接 水平拼接 pinjie_v.py import imageio import numpy as np import os import cv2def pinjie_v(dir1,dir2,out_dir):os.makedirs(out_dir, exist_okTrue)# 獲取目錄下的所有視頻文件video_files_1 [f for f in os.listdir(dir1) if f.endswith(.mp4)]video_fi…

Unity攝像機與燈光相關知識

一、Inspector窗口 Inspector窗口可以查看和編輯對象的屬性以及設置 其中包含各種組件,例如用Cube對象來舉例 1.Sphere(Mesh)組件: 用來決定對象的網格屬性,例如球體網格為Sphere、立方體網格為Cube 2.Mesh Renderer組件: 用來設置…

C++(17):為optional類型構造對象

C++(17):optional,多了一個合理的選擇_c++17 max-CSDN博客 介紹了optional做為函數返回值的一種方式 其實optional也可以作為對象來使用 #include &

探索關鍵領域的AI工具:機器學習、深度學習、計算機視覺與自然語言處理

引言 在人工智能(AI)迅猛發展的今天,機器學習(ML)、深度學習(DL)、計算機視覺(CV)和自然語言處理(NLP)已經成為解決復雜問題的關鍵技術。無論是自動駕駛車輛的視覺識別,還是智能助手的對話理解,這些技術都在改變著世界。本文將介紹在各個領域…

基于vue和微信小程序的校園自助打印系統(springboot論文源碼調試講解)

第3章 系統設計 3.1系統功能結構設計 本系統的結構分為管理員和用戶、店長。本系統的功能結構圖如下圖3.1所示: 圖3.1系統功能結構圖 3.2數據庫設計 本系統為小程序類的預約平臺,所以對信息的安全和穩定要求非常高。為了解決本問題,采用前端…

Windows 快速搭建C++開發環境,安裝C++、CMake、QT、Visual Studio、Setup Factory

安裝C 簡介 Windows 版的 GCC 有三個選擇: CygwinMinGWmingw-w64 Cygwin、MinGW 和 mingw-w64 都是在 Windows 操作系統上運行的工具集,用于在 Windows 環境下進行開發和編譯。 Cygwin 是一個在 Windows 上運行的開源項目,旨在提供類Uni…

MKS SERVO42E57E 閉環步進電機_系列10 STM32_脈沖和串口例程

文章目錄 第1部分 產品介紹第2部分 相關資料下載2.1 MKS E系列閉環步進驅動資料2.2 源代碼下載2.3 上位機下載 第3部分 脈沖控制電機運行示例第4部分 讀取參數示例4.1 讀取電機實時位置4.2 讀取電機實時轉速4.3 讀取電機輸入脈沖數4.4 讀取電機位置誤差4.5 讀取電機IO端口狀態 …

【宏基因組】MaAsLin2

教學手冊:學習手冊 MaAsLin2 # BiocManager::install("Maaslin2",force TRUE)library(Maaslin2) # 用的是相對豐度,行名為-ID行樣本,列為細菌 input_data system.file("extdata", "HMP2_taxonomy.tsv", package"…

【消息隊列】認識項目

1. 項目介紹 該項目是去實現一個簡單的消息隊列,包含服務器,客戶端的實現,客戶端通過遠程方法調用與服務器進行交互。采用自定義應用層協議,下層使用 TCP 協議進行數據在網絡中傳輸,核心功能提供了虛擬主機&#xff0…

vue從入門到精通(十一):條件渲染

條件渲染 1.v-if 寫法: (1).v-if“表達式” (2).v-else-if“表達式” (3).v-else“表達式” 適用于:切換頻率較低的場景。 特點:不展示的DOM元素直接被移除。 注意:v-if可以和:v-else-if、v-else一起使用,但要求結構不能被“打斷” 2.v-show 寫法:v-show“…