dify的docker服务请求内网服务器遇到的问题

接上一篇文章: https://www.cnblogs.com/neozheng/p/18400589

 

我有一台 10.xxx.20.162 的内网服务器运行着 dify 的 docker compose 服务,又起了一台 10.xxx.41.11 的内网服务器用来运行 ollama 大模型。

我是通过 手动的方式安装的 ollama,在运行ollama的时候遇到一个问题: ollama 只监听了 `127.0.0.1` 的地址。经过查询得知,要想把监听地址改成 `0.0.0.0`,需要新建ollama的配置文件并通过 `systemctl` 的方式启动。但我的服务器用 systemctl 启动 ollama 又一直失败,所以只能用 `ollama serve` 的方式启动,这种方式启动的话,可以先在环境变量中配置好ollama的监听地址,如下:

export OLLAMA_HOST=0.0.0.0:11434

通过这种方式就能在 10.xxx.20.162 的内网服务器 成功访问 10.xxx.41.11 的ollama服务了,如下:

curl http://localhost:11434/api/generate -d '{
  "model": "llama3.2",
  "prompt":"Why is the sky blue?"
}'

但在公司电脑的浏览器上访问10.xxx.20.162 上的dify服务时, ollama 的模型在dify中一直添加失败。 最后意识到应该是 代理的问题,就对 docker-compose.yaml做了如下修改:

...
services:
  # API service
  api:
    image: langgenius/dify-api:0.7.1
    restart: always
    environment:
      # Use the shared environment variables.
      <<: *shared-api-worker-env
      # Startup mode, 'api' starts the API server.
      MODE: api
      # 设置代理
      HTTP_PROXY: http://my-proxy.com:3128
      HTTPS_PROXY: http://my-proxy.com:3128
      # 不走代理的情况: 把 weaviate 服务添加到里面
      NO_PROXY: localhost,127.0.0.1,weaviate,10.xxx.41.11
    depends_on:
      - db
      - redis
    volumes:
      # Mount the storage directory to the container, for storing user files.
      - ./volumes/app/storage:/app/api/storage
    networks:
      - ssrf_proxy_network
      - default

  # worker service
  # The Celery worker for processing the queue.
  worker:
    image: langgenius/dify-api:0.7.1
    restart: always
    environment:
      # Use the shared environment variables.
      <<: *shared-api-worker-env
      # Startup mode, 'worker' starts the Celery worker for processing the queue.
      MODE: worker
      # 设置代理
      HTTP_PROXY: http://my-proxy.com:3128
      HTTPS_PROXY: http://my-proxy.com:3128
      # 不走代理的情况: 把 weaviate 服务添加到里面
      NO_PROXY: localhost,127.0.0.1,weaviate,10.xxx.41.11
    depends_on:
      - db
      - redis
    volumes:
      # Mount the storage directory to the container, for storing user files.
      - ./volumes/app/storage:/app/api/storage
    networks:
      - ssrf_proxy_network
      - default

# dify 的其他服务就不需要配置代理的设置了
...

通过在 NO_PROXY 中添加 10.xxx.41.11,就表示访问它的时候不要走代理。 这样子,在dify页面上添加 ollama模型失败的问题就解决了

 

posted @ 2024-10-24 17:50  neozheng  阅读(236)  评论(0编辑  收藏  举报