[nginx] 使用nginx代理实现Ollama支持本地html访问
Ollama 可以用来快速部署种种AI大模型、嵌入模型,比如 DeepSeek。
其自身也可以通过环境配置实现跨域支持,比如在 windows 中部署的 ollama,可以在环境变量中增加 OLLAMA_HOST=0.0.0.0:11434 来指定监听的网络端口和绑定的IP地址,OLLAMA_ORIGINS=* 允许跨域,OLLAMA_MODELS=D:\models 指定模型存放位置等。
我们也可以使用 nginx 代理实现跨域支持,修改 nginx 的 nginx.conf (一般位于 etc\nginx\nginx.conf):
...
http {
...
# 添加 Origin 映射,如果请求的 `origin` 为 `null` 则设为 `http://127.0.0.1` (本地html直接请求时会是null)
map $http_origin $origin {
default $http_origin;
"null" "http://127.0.0.1";
}
...
server {
...
location /ollama/ {
if ($request_method = 'OPTIONS') {
# 只需要返回状态 200 和 CORS 头部
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS, PUT, DELETE';
add_header Access-Control-Allow-Headers 'Origin, X-Requested-With, Content-Type, Accept, Authorization';
add_header Access-Control-Max-Age 3600;
return 204;
}
proxy_set_header Origin $origin;
proxy_pass http://127.0.0.1:11434/;
add_header Access-Control-Allow-Origin '*' always; # 允许任何源访问
add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS'; # 允许的请求方法
add_header Access-Control-Allow-Headers 'Content-Type'; # 允许的请求头
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;
proxy_cache off;
proxy_set_header Content-Type '';
}
...
}
}
保存配置并重启 nginx 服务后,假如 nginx 服务开的端口是 1234, 就可以通过 http://127.0.0.1:1234/ollama 来代替 http://127.0.0.1:11434 跨域访问了。

浙公网安备 33010602011771号