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

CentOS7 部署 Ollama 全栈指南:构建安全远程大模型服务

一、基础环境配置

1. 系统升级与依赖安装
# 更新系统组件
sudo yum update -y
sudo yum install -y epel-release
sudo yum groupinstall "Development Tools" -y# 安装 Python3 环境
sudo yum install python3 python3-devel python3-pip -y
python3 -m pip install --upgrade pip
2. GLIBC 版本验证

CentOS7 默认 GLIBC 版本为 2.17,需升级至 2.27+ 以兼容 Ollama:

# 安装 SCL 软件集
sudo yum install centos-release-scl -y
sudo yum install devtoolset-12 -y# 激活新环境
scl enable devtoolset-12 bash
echo "source /opt/rh/devtoolset-12/enable" >> ~/.bashrc

二、Ollama 服务部署

1. 二进制安装
# 执行官方安装脚本
curl -fsSL https://ollama.com/install.sh | sh# 验证安装
ollama --version  # 应显示 v0.5.12+
2. 模型部署示例

启动 70 亿参数的中文模型:

ollama run wangshenzhi/llama3-8b-chinese-chat-ollama-q8

三、远程访问配置

1. 服务监听地址修改
# 编辑服务配置文件
sudo vi /etc/systemd/system/ollama.service# 在 [Service] 段添加环境变量
Environment="OLLAMA_HOST=0.0.0.0:11434"# 重载配置并重启
sudo systemctl daemon-reload
sudo systemctl restart ollama
2. 防火墙规则配置
# 开放 11434 端口
sudo firewall-cmd --permanent --add-port=11434/tcp
sudo firewall-cmd --reload# 验证端口监听
netstat -tuln | grep 11434  # 应显示 LISTEN 状态

四、安全加固方案

1. Nginx 反向代理
server {listen 443 ssl;server_name your-domain.com;ssl_certificate /path/to/cert.pem;ssl_certificate_key /path/to/key.pem;location / {proxy_pass http://127.0.0.1:11434;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;}# IP 白名单控制allow 192.168.1.0/24;deny all;
}
2. API 密钥认证

通过中间件实现请求头校验:

from fastapi import FastAPI, Header, HTTPExceptionapp = FastAPI()
API_KEY = "your_secure_key_here"@app.middleware("http")
async def verify_key(request, call_next):if request.headers.get("X-API-Key") != API_KEY:raise HTTPException(status_code=401, detail="Unauthorized")return await call_next(request)

五、Python 远程调用实践

1. 基础文本生成
import requestsdef generate_text(prompt):url = "http://your-server-ip:11434/api/generate"data = {"model": "llama3-8b-chinese","prompt": prompt,"stream": False}response = requests.post(url, json=data)return response.json()["response"]# 示例调用
result = generate_text("量子纠缠的基本原理是什么?")
print(result)
2. 流式响应处理
def stream_generation(prompt):response = requests.post("http://your-server-ip:11434/api/generate",json={"model": "llama3-8b-chinese", "prompt": prompt, "stream": True},stream=True)for chunk in response.iter_lines():if chunk:data = json.loads(chunk.decode('utf-8'))if not data["done"]:yield data["response"]# 实时输出
for text in stream_generation("编写Python快速排序代码"):print(text, end='', flush=True)

六、生产环境问题排查

1. GLIBC 版本冲突

若出现 libstdc++.so.6: version GLIBCXX_3.4.20 not found 错误:

# 查看当前 GLIBCXX 版本
strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX# 手动升级 libstdc++
sudo yum install devtoolset-12-libstdc++-devel -y
2. 模型加载异常

通过日志诊断资源问题:

journalctl -u ollama -f  # 实时监控服务日志
free -h  # 检查内存占用
nvidia-smi  # 查看 GPU 状态

结语

通过本文的配置方案,开发者可在 CentOS7 上构建稳定的大模型服务端,并通过标准 HTTP 协议实现安全远程调用。建议定期执行 ollama update 保持模型版本最新,同时关注 CVE 漏洞公告及时修补安全风险。对于企业级场景,可结合 Kubernetes 实现高可用集群部署。

http://www.xdnf.cn/news/161893.html

相关文章:

  • 【Python】Python中的浅拷贝和深拷贝
  • Halcon算子应用和技巧13
  • Spring AI Alibaba - Milvus 初体验,实现知识库效果
  • SDC命令详解:使用reset_design命令重置设计
  • 力扣热题100题解(c++)—链表
  • Python项目实践:控制台银行系统与词频统计工具开发指南
  • c#简易超市充值卡程序充值消费查余额
  • 升级 Spring Boot CLI
  • 信用中国【国密SM2、SM4加解密】逆向算法分析
  • 【学习笔记】Stata
  • CD32.【C++ Dev】类和对象(22) 内存管理(下)
  • 在线录屏工具(压箱底)-免费高清
  • 基于QT的仿QQ音乐播放器
  • Pygame精灵进阶:动画序列与角色控制
  • 信息论核心概念详解
  • 利用【指针引用】对【非空单循环链表】进行删除操作
  • 服务器虚拟化:技术解析与实践指南
  • 协程(微线程)
  • Kdenlive 中的变形、畸变、透视相关功能
  • Python函数基础:简介,函数的定义,函数的调用和传入参数,函数的返回值
  • 架构整洁之道 心得
  • 【线段树】P11414 [EPXLQ2024 fall round] 神奇磁铁|普及+
  • 如何在 PowerShell 脚本中调用外部 Windows 命令
  • 精益数据分析(29/126):深入剖析电子商务商业模式
  • 021-C语言文件操作
  • Linux系统性能调优技巧分享
  • 如何创建一个C#项目(基于VS2022版)
  • 本地电脑安装DeepSeek
  • 【特殊场景应对9】视频简历的适用场景与风险分析
  • Python----深度学习(基于DNN的PM2.5预测)