Ollama跨域配置:实现客户端通过API访问服务器端部署的Ollama服务
Ollama跨域配置:实现客户端通过API访问服务器端部署的Ollama服务
Ollama默认在本地运行,不对外提供服务,这会导致在服务器端部署的模型无法被用户通过API的形式访问到。要允许外部设备访问Ollama服务,需要让Ollama服务监听所有网络接口,而不仅仅是本地回环地址。以下是具体设置:
客户端设置
客户端以Windows系统为例,这里我使用Edge浏览器中的Page Assist插件,通过API访问服务器端部署的Ollama服务。设置步骤如下:
- 在浏览器中安装Page Assist插件,打开该扩展插件的界面。
- 在设置界面的找到“Ollama设置”,将其中的“Ollama URL”修改为自己的服务器IP,端口号为11434(Ollama默认端口号)。
- 此时返回聊天交互界面,依然会显示“无法连接到Ollama”,接下来需要在服务器端进行一些设置。
服务器端设置
服务器端以Ubuntu系统为例,在服务器端完成Ollama的安装,并下载任意一个模型。
接下来,通过
sudo netstat -tuln | grep 11434
检查服务器上所有端口号为11434的连接信息,验证Ollama是否能正确地在所有网络接口上监听11434端口。也可以通过
telnet 192.168.120.88 11434
测试从另一台机器(例如你的Windows计算机)是否能连接到服务器上的Ollama服务。
从命令行返回的信息来看,Ollama服务当前仅监听在127.0.0.1(即localhost)上,这意味着它只接受来自本机的连接请求,并不对外网开放,当尝试从另一台机器访问服务器上的Ollama服务时,连接会被拒绝。接下来介绍解决方法。
配置Ollama允许跨域访问
上面的情况是由于Ollama的默认参数配置导致的。Ollama在启动时默认只设置了仅本地访问,所以跨域访问以及端口监听需要进行额外的环境变量设置OLLAMA_ORIGINS
。如果Ollama作为systemd服务运行,应该使用systemctl
设置环境变量:
- 通过调用
sudo systemctl edit ollama.service
编辑systemd服务。执行该命令会打开一个编辑器,在编辑器中,你可以修改Ollama服务的配置,特别是环境变量部分。
- 对于每个环境变量,在
[Service]
部分下添加Environment
:
[Service]
Environment="OLLAMA_HOST=0.0.0.0"
Environment="OLLAMA_ORIGINS=*"
保存并退出。在nano编辑器界面中,“^”对应键盘上的“ctrl”键,也就是说,键盘操作“ctrl+O”实现写入文本,键盘操作“ctrl+X”实现离开编辑器。
重载systemd并重启Ollama:
sudo systemctl daemon-reload
sudo systemctl restart ollama
重启Ollama服务后,在客户端的Page Assist中刷新页面,可见已经可以连接到服务器端的模型了。