本地服务部署

本章介绍如何在本地部署和管理 Ollama 服务。 Ollama 本地服务的部署方式,包括服务启动、配置和管理。

服务概述

Ollama 服务提供:

  • 模型运行环境
  • HTTP API 接口
  • 模型管理功能

默认情况下,Ollama 在安装后会自动启动服务。

启动服务

手动启动

ollama serve

输出:

time=2024-01-15T10:00:00.000Z level=INFO source=server.go:123 msg="Ollama server is running"

后台运行

Linux(systemd):

sudo systemctl start ollama
sudo systemctl enable ollama  # 开机自启

macOS:

Ollama 安装后会自动启动,可以在系统托盘看到图标。

Windows:

Ollama 作为后台服务运行,可在任务管理器中查看。

服务配置

监听地址

默认监听 127.0.0.1:11434,可以通过环境变量修改:

OLLAMA_HOST=0.0.0.0:11434 ollama serve
配置说明
127.0.0.1:11434仅本机访问(默认)
0.0.0.0:11434允许所有网络访问
192.168.1.100:11434指定 IP 访问

模型存储路径

OLLAMA_MODELS=/data/ollama/models ollama serve

跨域配置

允许网页访问 API:

OLLAMA_ORIGINS="*" ollama serve

或指定允许的域名:

OLLAMA_ORIGINS="https://example.com,https://app.example.com" ollama serve

并发配置

OLLAMA_MAX_LOADED_MODELS=3 ollama serve
OLLAMA_NUM_PARALLEL=4 ollama serve

systemd 服务配置(Linux)

创建服务文件

sudo nano /etc/systemd/system/ollama.service

服务配置内容

[Unit]
Description=Ollama Service
After=network.target

[Service]
Type=simple
User=ollama
Group=ollama
ExecStart=/usr/local/bin/ollama serve
Restart=always
RestartSec=3
Environment="OLLAMA_HOST=0.0.0.0:11434"
Environment="OLLAMA_MODELS=/data/ollama/models"

[Install]
WantedBy=multi-user.target

服务管理命令

# 启动服务
sudo systemctl start ollama

# 停止服务
sudo systemctl stop ollama

# 重启服务
sudo systemctl restart ollama

# 查看状态
sudo systemctl status ollama

# 查看日志
sudo journalctl -u ollama -f

# 开机自启
sudo systemctl enable ollama

# 取消自启
sudo systemctl disable ollama

检查服务状态

命令行检查

# 查看运行中的模型
ollama ps

# 测试 API
curl http://localhost:11434/api/tags

健康检查

curl http://localhost:11434/api/version

返回:

{"version":"0.1.x"}

端口管理

检查端口占用

# Linux/macOS
lsof -i :11434

# 或
netstat -tlnp | grep 11434

修改端口

OLLAMA_HOST=127.0.0.1:8080 ollama serve

日志管理

查看日志

Linux(systemd):

# 查看全部日志
sudo journalctl -u ollama

# 实时查看
sudo journalctl -u ollama -f

# 查看最近 100 行
sudo journalctl -u ollama -n 100

macOS:

# 查看应用日志
log show --predicate 'process == "ollama"' --last 1h

Windows:

在事件查看器中查看 Ollama 日志。

日志级别

OLLAMA_DEBUG=1 ollama serve

资源管理

内存限制

Ollama 会自动管理内存,但可以手动配置:

# 限制模型在内存中保留的时间
OLLAMA_KEEP_ALIVE=10m ollama serve

GPU 配置

# 指定使用的 GPU
CUDA_VISIBLE_DEVICES=0 ollama serve

# 多 GPU
CUDA_VISIBLE_DEVICES=0,1 ollama serve

安全配置

限制访问

只允许特定 IP 访问:

OLLAMA_HOST=127.0.0.1:11434 ollama serve

防火墙配置

Linux(ufw):

# 允许本地访问
sudo ufw allow from 127.0.0.1 to any port 11434

# 允许局域网访问
sudo ufw allow from 192.168.1.0/24 to any port 11434

Linux(firewalld):

# 开放端口
sudo firewall-cmd --add-port=11434/tcp --permanent
sudo firewall-cmd --reload

常见问题

服务无法启动

检查端口是否被占用:

lsof -i :11434

无法访问 API

检查服务是否运行:

curl http://localhost:11434/api/version

检查防火墙设置。

内存不足

关闭不需要的模型:

ollama stop <模型名>

或重启服务。