当前位置: 首页 > news >正文

Nginx配置Ollama 访问api服务

使用Nginx配置Ollama API访问服务指南

一、前置准备
  1. 基础环境要求:

    • 已部署Ollama服务(默认端口11434)
    • 服务器安装Nginx 1.18+版本
    • 有效域名(示例使用api.ollama.service.com)
    • 开放服务器80/443端口
  2. 网络拓扑确认:

    graph LR
    A[客户端] --> B[域名DNS解析]
    B --> C[Nginx服务器]
    C --> D[Ollama服务:11434]
    

二、核心配置解析
server {listen 80;server_name api.ollama.service.com;# 基础路由配置location / {proxy_pass http://IP:11434;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-Proto $scheme;}# 流式API专用配置location /api/ {proxy_pass http://IP:11434;proxy_http_version 1.1;proxy_set_header Connection '';# 实时传输优化proxy_buffering off;proxy_cache off;chunked_transfer_encoding off;# CORS跨域配置add_header 'Access-Control-Allow-Origin' '*' always;add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS' always;# 预检请求处理if ($request_method = 'OPTIONS') {add_header 'Access-Control-Max-Age' 1728000;return 204;}}
}

三、关键配置说明
  1. 流式传输优化组合:

    • proxy_buffering off:禁用响应缓冲
    • proxy_http_version 1.1:启用持久连接
    • chunked_transfer_encoding off:避免分块编码干扰
  2. CORS防护矩阵:

    graph TB
    A[客户端请求] --> B[检测Origin头]
    B --> C{是否预检请求?}
    C -->|是| D[返回OPTIONS响应]
    C -->|否| E[添加CORS响应头]
    
  3. 代理头传递链:

    客户端IP → X-Real-IP → X-Forwarded-For → Ollama服务
    
四、接口测试验证
  1. CORS验证测试:
curl -I -X OPTIONS http://api.ollama.service.com/api/ \
-H 'Origin: http://test-domain.com' \
-H 'Access-Control-Request-Method: POST'

预期响应包含:

HTTP/1.1 204 No Content
Access-Control-Allow-Origin: *
Access-Control-Max-Age: 1728000

  1. 流式请求测试:
async function testStreaming() {const response = await fetch('http://api.ollama.service.com/api/generate', {method: 'POST',headers: {'Content-Type': 'application/json','Authorization': 'Bearer API_KEY'},body: JSON.stringify({model: 'llama2',prompt: '为什么天空是蓝色的?'})});const reader = response.body.getReader();while(true) {const {done, value} = await reader.read();if(done) break;console.log(new TextDecoder().decode(value));}
}
五、性能监控建议
  1. 流量观测指标:

    pie
    title 请求类型分布
    "模型推理" : 65
    "参数调整" : 20
    "状态查询" : 15
    
  2. 推荐监控参数:

    • 连接保持时间:keepalive_timeout
    • 每秒请求数(RPS)
    • 平均响应延迟
六、安全增强建议
  1. 防护措施清单:
    • 启用HTTPS(Let's Encrypt免费证书)
    • 配置请求频率限制
    limit_req_zone $binary_remote_addr zone=ollama_limit:10m rate=10r/s;
    
    • 添加JWT验证层
    • 启用Nginx访问日志审计

本文配置已通过以下环境验证:

  • Ubuntu 22.04 LTS
  • Nginx 1.22.1
  • Ollama 0.1.27
  • 测试工具:curl 7.81.0、Postman v10.14
http://www.xdnf.cn/news/786043.html

相关文章:

  • TablePlus:一个跨平台的数据库管理工具
  • AI Coding 资讯 2025-06-03
  • 垂起固定翼无人机应用及技术分析
  • godwork_ AT 5.2 摄影测量空三数据处理软件。
  • 闲谈PMIC和SBC
  • FTXUI::Screen 模块
  • 《Effective Python》第六章 推导式和生成器——总结(基于智能物流仓储监控系统的数据处理)
  • 1. 引言
  • 《DeepSeek使用指南》开源知识库正式上线啦!
  • Spring AI开发跃迁指南(第二章:精进之道1——花样玩转LLM对话记忆功能)
  • 小巧实用,Windows文件夹着色软件推荐
  • OD 算法题 B卷【矩阵稀疏扫描】
  • 【知识点】openai请求参数如何转为大模型的字符串?
  • 如何将 iOS 性能调试融入日常开发流程?构建“默认监控机制”的实战经验(含 KeyMob 工具搭配)
  • 【高等数学】(1)映射
  • 二分查找的边界艺术:LeetCode 34 题深度解析
  • WebFuture:启动服务提示Job webfuture.service/start failed with result ‘dependency‘处理办法
  • 大模型 提示模板 设计
  • 动态规划(2)
  • 从测试角度看待CI/CD,敏捷开发
  • 基于YOLO-NAS-Pose的无人机象群姿态估计:群体行为分析的突破
  • YOLO训练及数据采集注意事项
  • 压缩格式未知或数据损坏:如何应对压缩包无法打开的情况
  • 用PyTorch从零开始编写DeepSeek-V2
  • 情趣私域运营:打造高效转化的私域营销体系
  • C++11特性:enum class(强枚举类型)详解
  • leetcode hot100刷题日记——36.最长连续序列
  • 金属膜电阻和碳膜电阻
  • 在 Vite 中如何处理静态资源
  • 飞算 JavaAI 赋能老项目重构:破旧立新的高效利器