在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 & Ollama
Nginx 是开源、高性能、高可靠的Web 和反向代理服务器,而且支持热部署,几乎可以做到7 * 24 小时不间断运行,即使运行几个月也不需要重新启动,还能在不间断服务的情况下对软件版本进行热更新。
1.1 通过命令行来安装Nginx
通过以下命令行来安装Nginx
sudo apt update && apt upgrade -y sudo apt install nginx -y
1.2 安装Ollama
通过下列命令行来安装Ollama
curl -fsSL https://ollama.com/install.sh | sh
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_name 的
IP地址更换为自己的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-enabled 到 sites-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: 310



