在Open WebUI中启用SearXNG遇403错误的解决求助
Open WebUI集成SearXNG时403 Forbidden错误的解决办法
问题描述
在Open WebUI(原Ollama Web UI)中配置SearXNG元搜索引擎后,触发网页搜索时持续返回403禁止错误。具体报错如下:
403 Client Error: FORBIDDEN for url: http://searxng:8080/search?q=who+is+euro+2024+winner&format=json&pageno=1&safesearch=1&language=en-US&time_range=&categories=&theme=simple&image_proxy=0
问题根源
- docker-compose配置中端口与URL不匹配,容器内部通信地址错误
- SearXNG默认启用API访问限制和IP白名单,未授权的请求被拦截
修复步骤
1. 修正docker-compose.yml的端口与URL一致性
你的配置里SearXNG容器内部端口是8080,但环境变量里错误写成了8088,容器间通信必须用容器内部端口。修改如下:
调整SearXNG服务配置
searxng: image: searxng/searxng:latest ports: - "8888:8080" environment: - BASE_URL=http://searxng:8080/ # 改为容器内部端口8080 restart: always
调整Open WebUI的环境变量
webui: image: ghcr.io/open-webui/open-webui:main ports: - 3000:8080 environment: OLLAMA_BASE_URL: http://ollama:11434 SEARXNG_URL: http://searxng:8080 # 同步改为容器内部端口8080 ENABLE_RAG_WEB_SEARCH: True RAG_WEB_SEARCH_ENGINE: "searxng" RAG_WEB_SEARCH_RESULT_COUNT: 4 RAG_WEB_SEARCH_CONCURRENT_REQUESTS: 12 SEARXNG_QUERY_URL: "http://searxng:8080/search?q=<query>" # 修正端口 volumes: - open-webui:/app/backend/data depends_on: - ollama - searxng restart: always
2. 配置SearXNG允许API访问
SearXNG默认关闭API并限制请求,需要自定义配置解除限制:
步骤2.1 创建自定义配置文件
在docker-compose.yml同目录下新建searxng/settings.yml,内容如下:
server: secret_key: "your_random_secret_key_here" # 生成随机字符串即可,比如用`openssl rand -hex 16`生成 bind_address: "0.0.0.0" port: 8080 base_url: http://searxng:8080/ limiter: false # 测试阶段关闭限流,生产环境可配置IP白名单 api: enabled: true # 启用API功能 allow_get: true # 允许GET请求(Open WebUI用GET调用API) search: safesearch: 1 default_lang: "en-US" ui: theme: simple
步骤2.2 挂载配置文件到SearXNG容器
更新searxng服务的volumes配置:
searxng: image: searxng/searxng:latest ports: - "8888:8080" environment: - BASE_URL=http://searxng:8080/ volumes: - ./searxng/settings.yml:/etc/searxng/settings.yml # 挂载自定义配置 restart: always
3. 重启容器并验证
执行命令重启所有服务:
docker-compose down && docker-compose up -d
重启后打开Open WebUI,确认搜索设置中的SearXNG查询URL为http://searxng:8080/search?q=<query>,然后再次测试网页搜索,即可正常获取结果。
内容的提问来源于stack exchange,提问作者Urvesh
相关产品推荐
相关产品推荐

