Ubuntu 22.04环境下安装Ollama GPU版本 | 实现调用Ollama API

在Ubuntu 22.04服务器中安装GPU版本的Ollama给其他服务器调用,我们可以用另一种非常常见且强大的方法:使用 Nginx 作为反向代理来暴露 Ollama 的 API。

从而实现让其他服务器可以通过 http://<你的VPS的IP地址>/ 来访问 Ollama 的 API。例如,如果之前 Ollama 的 API 路径是 http://localhost:11434/api/generate,那么通过 Nginx 代理后,外部访问路径将是 http://<你的VPS的IP地址>/api/generate

1. 安装 Nginx

Nginx 是开源、高性能、高可靠的Web 和反向代理服务器,而且支持热部署,几乎可以做到7 * 24 小时不间断运行,即使运行几个月也不需要重新启动,还能在不间断服务的情况下对软件版本进行热更新。

1.1 通过命令行来安装Nginx

通过以下命令行来安装Nginx

sudo apt update && apt upgrade -y
sudo apt install nginx -y

2. 配置 VPS 防火墙以允许 Nginx 的流量

需要允许 HTTP (端口 80) 的入站连接。(如果计划以后使用 HTTPS,也需要允许端口 443

sudo ufw allow 'Nginx HTTP'  # 这会允许端口 80
# 如果计划用 HTTPS: sudo ufw allow 'Nginx HTTPS' # 将允许端口 443
sudo ufw reload
sudo ufw status # 确认规则已添加

如果你的 VPS 提供商(如 Vultr)有外部防火墙/安全组,确保那里也允许端口 80 (和 443) 的入站流量。

3. 创建 Nginx 配置文件用于 Ollama 代理

3.1 创建一个新的 Nginx 配置文件:

sudo nano /etc/nginx/sites-available/ollama-proxy

3.2 配置文件

将以下内容粘贴到文件中。请将 45.77.205.148 替换为你的实际 VPS IP 地址(或者如果你有域名,可以使用域名)。

server {
    listen 80;
    server_name 45.77.205.148; # 或者你的域名,例如 ollama.yourdomain.com

    location / {
        proxy_pass http://127.0.0.1:11434; # Ollama 在本地监听的地址和端口
        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;

        # 对于流式响应 (streaming) 很重要,Ollama API 常用
        proxy_http_version 1.1;
        proxy_set_header Connection ""; # 清除可能由客户端发送的 "close" Connection 头
        proxy_buffering off; # 关闭代理缓冲,确保实时性
        chunked_transfer_encoding on; # 确保分块传输编码被正确处理
    }
}

ℹ️ 将server_nameIP 地址更换为自己的IP地址

3.3 保存文件并退出

  • Ctrl + O,然后按 Enter 保存。
  • Ctrl + X 退出,按 Enter 保存。

4. 启用新的Nginx站点配置

通过如下命令启用新的 Nginx站点配置

sudo ln -s /etc/nginx/sites-available/ollama-proxy /etc/nginx/sites-enabled/

这会创建一个从 sites-enabledsites-available 的符号链接

5. 测试并重启Nginx服务以应用更改

通过以下命令来操作:

sudo nginx -t # 测试Nginx配置
sudo systemctl restart nginx # 重启Nginx

如果输出中包含这样的信息说明配置成功:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

如果看到错误,请回头检查 ollama-proxy 文件中的内容是否有拼写或语法问题。

6. 测试从外部访问Ollama API

现在,你应该可以从任何其他服务器或你的本地电脑通过 Nginx 访问 Ollama API 了。 例如,要获取模型列表:

curl http://123.123.123.123/api/tags

这样的话会在CMD中显示出模型的信息:

之后就可以将该API和其他服务如Open WebUI等服务进行联动使用了。点击这可以参考如何部署Open WebUI在Ubuntu 22.04环境中 ↗️,会有详细的指引。

Views: 2

留下评论

您的邮箱地址不会被公开。 必填项已用 * 标注