Ollama运行一个HTTP服务器,可以使用代理服务器(如Nginx)进行暴露。为此,配置代理来转发请求并可选地设置所需的请求头(如果没有在网络上公开Ollama)。例如,使用Nginx:
server {
listen 80;
server_name example.com; # Replace with your domain or IP
location / {
proxy_pass http://localhost:11434;
proxy_set_header Host localhost:11434;
}
}
解析:
server
块定义了一个虚拟主机,用于处理特定域名或 IP 地址的请求。listen 80;
指定服务器监听端口 80,即 HTTP 默认端口。server_name example.com;
指定服务器响应的域名。你需要将 example.com
替换为你自己的域名或 IP 地址。location
块定义了请求的匹配规则和处理方式。在这里,/
表示匹配所有请求路径。proxy_pass http://localhost:11434;
指定代理的目标地址。这里假设 Ollama 服务器运行在同一台机器的 11434 端口上。请根据你的实际情况调整端口号。proxy_set_header Host localhost:11434;
设置转发给 Ollama 服务器的 Host
请求头。这里将其设置为 localhost:11434
,以确保 Ollama 服务器能够正确处理请求。使用这个配置,当你访问 http://example.com
时,Nginx 会将请求转发到 http://localhost:11434
,也就是本地运行的 Ollama 服务器。Ollama 服务器会处理请求并返回响应,然后 Nginx 将响应发送回客户端。
请注意,在使用这个配置之前,你需要:
example.com
替换为你自己的域名或 IP 地址。proxy_pass
和 proxy_set_header
指令中的端口号。http
块内或在一个单独的服务器配置文件中。nginx -s reload
。完成这些步骤后,你就可以通过访问你配置的域名或 IP 地址来访问 Ollama 服务器了,Nginx 会将请求代理到本地运行的 Ollama 服务器。
可以使用一系列内网穿透工具访问Ollama。例如Ngrok
以下是使用 Ngrok 访问 Ollama 的步骤:
ngrok http 11434 --host-header="localhost:11434"
https://xxxxxxxx.ngrok.io
,用于访问你的本地服务器。
https://xxxxxxxx.ngrok.io
,在浏览器或 API 客户端中访问 Ollama 服务器。~/.ollama/models
/usr/share/ollama/.ollama/models
C:\Users\<username>\.ollama\models
你可以在启动 Ollama Docker 容器时通过传递 -e HTTPS_PROXY=https://proxy.example.com
来配置代理。另外,Docker守护进程也可以配置为使用代理。
使用HTTPS协议时,请确保该证书是作为系统证书安装的。当使用自签名证书时,这可能需要一个新的Docker镜像。
FROM ollama/ollama
COPY my-ca.pem /usr/local/share/ca-certificates/my-ca.crt
RUN update-ca-certificates
构建并运行这个镜像
docker build -t ollama-with-ca .
docker run -d -e HTTPS_PROXY=https://my.proxy.example.com -p 11434:11434 ollama-with-ca
Ollama Docker 容器可以在 Linux 或 Windows(使用 WSL2)中配置 GPU 加速。这需要 nvidia-container-toolkit。
由于缺乏 GPU 直通和模拟,macOS 上的 Docker Desktop 无法使用 GPU 加速。
powered by kaifamiao