39点博客

39点博客
像小蜜蜂一样生活

​Ollama部署 Embedding 模型与 Nginx鉴权配置

记录从安装 Docker 到给 Ollama 部署Embedding模型加API Key 鉴权的完整步骤。

一、安装 Docker

1. 安装基础工具和华为云 Docker 源

sudo yum install -y yum-utils device-mapper-persistent-data lvm2
sudo yum-config-manager --add-repo https://mirrors.huaweicloud.com/docker-ce/linux/centos/docker-ce.repo
sudo sed -i 's+download.docker.com+mirrors.huaweicloud.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo

2. 安装 Docker 并启动

sudo yum install -y docker-ce
sudo systemctl enable docker
sudo systemctl start docker

3. 验证是否安装成功

docker --version

二、配置 Docker 镜像加速

创建 daemon.json,写入镜像加速地址,然后重载配置并重启 Docker。

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": [
    "https://docker.m.daocloud.io",
    "https://docker.xuanyuan.me",
    "https://docker.1ms.run"
  ]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

三、拉取 Ollama 镜像

docker pull ollama/ollama

四、启动 Ollama 容器

把容器的 11434 端口映射到主机的 11434 端口,并设置自动重启。

docker run -d \
  -v ollama:/root/.ollama \
  -p 11434:11434 \
  --name ollama \
  --restart always \
  ollama/ollama

五、下载并验证 Embedding 模型

这里用 BGE-M3 作为 Embedding 模型,直接让 Ollama 拉取。

1. 下载模型

docker exec -it ollama ollama pull bge-m3

2. 确认模型出现在列表里

docker exec -it ollama ollama list

3. 测试生成向量

如果返回一串数字数组(向量),说明 Embedding 服务正常工作了。

docker exec -it ollama ollama run bge-m3 "测试文本"

执行后输出内容如下:image.png


六、安装 Nginx,给 Ollama 做反向代理和 API Key 鉴权

Nginx 监听 8080,校验 Authorization 请求头,通过后转发到本机 Ollama 的 11434 端口。

# API Key 白名单,支持配置多个
map $http_authorization $is_valid_key {
    default 0;
    "Bearer 你的API_KEY" 1;   # 替换为刚生成的 API Key
    # "Bearer 另一个KEY" 1;   # 如果有多个,可以继续添加
}

server {
    listen 8080;                # Nginx 对外服务的端口,可自定义
    server_name 你的服务器公网IP; # 替换为服务器公网 IP

    location / {
        # API Key 校验,不通过则返回 401
        if ($is_valid_key = 0) {
            return 401 'Unauthorized: Invalid API Key';
        }

        # 反向代理到本地 Ollama
        proxy_pass http://127.0.0.1:11434;

        # 标准代理头
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;

        # 流式响应核心配置(Chat/Stream 模式必须)
        proxy_buffering off;
        proxy_cache off;
        proxy_http_version 1.1;
        proxy_set_header Connection "";
    }
}

验证鉴权

不带 Key 的请求,预期返回 401:

curl -i http://服务器公网IP:8080/api/tags

应返回 HTTP/1.1 401 Unauthorized。

带正确 Key 的请求,预期成功:

curl http://服务器公网IP:8080/api/tags \
     -H "Authorization: Bearer API_KEY"

应返回 Ollama 的模型列表 JSON 数据。

原创类文章未经允许请勿转载:39点博客 » ​Ollama部署 Embedding 模型与 Nginx鉴权配置

分享到: +More

评论 沙了个发

换个身份

取消评论