有时候,将Ollama与UI分开托管是有益的,同时还要保留跨用户共享的RAG和RBAC支持功能:
对于UI配置,你可以按如下方式设置Apache VirtualHost:
# 假设你在"server.com"上托管此UI
<VirtualHost 192.168.1.100:80>
ServerName server.com
DocumentRoot /home/server/public_html
ProxyPass / http://server.com:3000/ nocanon
ProxyPassReverse / http://server.com:3000/
# 0.5版本后需要
ProxyPass / ws://server.com:3000/ nocanon
ProxyPassReverse / ws://server.com:3000/
</VirtualHost>
在请求SSL之前需要先启用站点:
a2ensite server.com.conf # 这将启用站点。a2ensite是"Apache 2 Enable Site"的简写
# SSL配置
<VirtualHost 192.168.1.100:443>
ServerName server.com
DocumentRoot /home/server/public_html
ProxyPass / http://server.com:3000/ nocanon
ProxyPassReverse / http://server.com:3000/
# 0.5版本后需要
ProxyPass / ws://server.com:3000/ nocanon
ProxyPassReverse / ws://server.com:3000/
SSLEngine on
SSLCertificateFile /etc/ssl/virtualmin/170514456861234/ssl.cert
SSLCertificateKeyFile /etc/ssl/virtualmin/170514456861234/ssl.key
SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
SSLProxyEngine on
SSLCACertificateFile /etc/ssl/virtualmin/170514456865864/ssl.ca
</VirtualHost>
这里我使用virtualmin来管理SSL集群,但你也可以直接使用certbot或你喜欢的SSL方法。使用SSL需要:
运行以下命令:
snap install certbot --classic
snap apt install python3-certbot-apache (这将安装apache插件)
导航到apache sites-available目录:
cd /etc/apache2/sites-available/
如果还没有创建server.com.conf,请创建它,包含上述<virtualhost>配置(应该与你的情况相匹配,根据需要修改)。使用不带SSL的版本:
创建完成后,运行certbot --apache -d server.com,这将为你请求并添加/创建SSL密钥,同时创建server.com.le-ssl.conf
在最新安装的Ollama上,确保你已经按照官方Ollama参考设置了api服务器:
该指南似乎与Linux上当前更新的服务文件不匹配。所以,我们在这里说明:
除非你是从源代码编译Ollama,使用标准安装curl https://ollama.com/install.sh | sh会在/etc/systemd/system中创建一个名为ollama.service的文件。你可以使用nano编辑该文件:
sudo nano /etc/systemd/system/ollama.service
添加以下行:
Environment="OLLAMA_HOST=0.0.0.0:11434" # 这行是必需的。你也可以指定
例如:
[Unit]
Description=Ollama Service
After=network-online.target
[Service]
ExecStart=/usr/local/bin/ollama serve
Environment="OLLAMA_HOST=0.0.0.0:11434" # 这行是必需的。你也可以指定192.168.254.109:其他端口,格式
Environment="OLLAMA_ORIGINS=http://192.168.254.106:11434,https://models.server.city" # 这行是可选的
User=ollama
Group=ollama
Restart=always
RestartSec=3
Environment="PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/s>
[Install]
WantedBy=default.target
按CTRL+S保存文件,然后按CTRL+X
当你的计算机重启时,Ollama服务器将在你指定的IP:PORT上监听,在这种情况下是0.0.0.0:11434或192.168.254.106:11434(无论你的本地IP地址是什么)。确保你的路由器正确配置,通过将11434转发到你的本地IP服务器来提供页面服务。
导航到apache sites-available目录:
cd /etc/apache2/sites-available/
nano models.server.city.conf # 与你的ollama服务器域名匹配
添加以下包含此示例的virtualhost(根据需要修改):
# 假设你在"models.server.city"上托管此UI
<IfModule mod_ssl.c>
<VirtualHost 192.168.254.109:443>
DocumentRoot "/var/www/html/"
ServerName models.server.city
<Directory "/var/www/html/">
Options None
Require all granted
</Directory>
ProxyRequests Off
ProxyPreserveHost On
ProxyAddHeaders On
SSLProxyEngine on
ProxyPass / http://server.city:1000/ nocanon # 或端口11434
ProxyPassReverse / http://server.city:1000/ # 或端口11434
SSLCertificateFile /etc/letsencrypt/live/models.server.city/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/models.server.city/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>
</IfModule>
在请求SSL之前,你可能需要先启用站点(如果你还没有这样做):
a2ensite models.server.city.conf
运行以下命令:
导航到apache sites-available目录:
cd /etc/apache2/sites-available/
certbot --apache -d server.com
<VirtualHost 192.168.254.109:80>
DocumentRoot "/var/www/html/"
ServerName models.server.city
<Directory "/var/www/html/">
Options None
Require all granted
</Directory>
ProxyRequests Off
ProxyPreserveHost On
ProxyAddHeaders On
SSLProxyEngine on
ProxyPass / http://server.city:1000/ nocanon # 或端口11434
ProxyPassReverse / http://server.city:1000/ # 或端口11434
RewriteEngine on
RewriteCond %{SERVER_NAME} =models.server.city
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>
别忘了使用systemctl reload apache2重启/重载Apache
恭喜,你的_类似ChatGPT风格的UI_现在正在提供具有RAG、RBAC和多模态功能的AI服务!如果你还没有下载Ollama模型,请立即下载!
如果你遇到任何配置错误或问题,请提交issue或参与我们的讨论。这里有很多友好的开发者可以帮助你。
让我们一起让这个UI对每个人都更加友好!
感谢选择宇光同行AI chat平台作为你的AI界面!
本文档由来自菲律宾的宇光同行AI chat平台爱好者Bob Reyes编写。