部署架构概述

部署采用Docker容器化方案,前端使用Nginx作为静态资源服务器,后端通过Ollama处理AI模型推理,三者通过Docker网络互联。前端打包后的静态文件由Nginx托管,API请求通过反向代理转发至后端服务。


环境准备

  1. 安装Docker
    确保宿主机已安装Docker Engine及Docker Compose。Linux系统可通过以下命令安装:

    curl -fsSL https://get.docker.com | sh
    systemctl enable --now docker
    

  2. 获取Ollama镜像
    拉取官方Ollama镜像并测试运行:

    docker pull ollama/ollama
    docker run -d -v ollama_data:/root/.ollama -p 11434:11434 --name ollama ollama/ollama
    


前端部署(Nginx)

  1. 构建前端静态文件
    在Vue/React项目中执行打包命令生成dist目录:

    npm run build
    

  2. 编写Nginx配置
    创建nginx.conf文件,配置静态资源服务和API反向代理:

    server {
        listen 80;
        root /usr/share/nginx/html;
        
        location / {
            try_files $uri $uri/ /index.html;
        }
    
        location /api {
            proxy_pass http://backend:11434;
            proxy_set_header Host $host;
        }
    }
    

  3. Dockerfile构建镜像
    创建包含Nginx和前端文件的Docker镜像:

    FROM nginx:alpine
    COPY dist /usr/share/nginx/html
    COPY nginx.conf /etc/nginx/conf.d/default.conf
    


后端部署(Ollama)

  1. 模型准备
    通过Ollama CLI拉取所需模型(以llama2为例):

    docker exec ollama ollama pull llama2
    

  2. API服务暴露
    确保Ollama容器的11434端口已映射到宿主机,可通过http://localhost:11434访问API。


Docker Compose集成

创建docker-compose.yml统一管理服务:

version: '3'
services:
  frontend:
    build: ./frontend
    ports:
      - "80:80"
    depends_on:
      - backend

  backend:
    image: ollama/ollama
    volumes:
      - ollama_data:/root/.ollama
    ports:
      - "11434:11434"

volumes:
  ollama_data:

启动所有服务:

docker-compose up -d


验证与调试

  1. 检查容器状态
    使用docker ps确认所有容器正常运行。

  2. 测试API连通性
    通过curl验证后端服务:

    curl http://localhost:11434/api/generate -d '{"model":"llama2"}'
    

  3. 前端访问
    浏览器打开http://localhost应显示前端页面,API请求自动代理至后端。


常见问题处理

  • 跨域问题:确保Nginx配置中添加proxy_set_header相关头信息。
  • 模型加载失败:检查Ollama容器日志确认模型是否完整下载。
  • 静态资源404:验证dist目录是否正确复制到Nginx容器内。
Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐