apache.md 6.2 KB

分离部署UI和模型

有时候,将Ollama与UI分开托管是有益的,同时还要保留跨用户共享的RAG和RBAC支持功能:

宇光同行AI chat平台配置

UI配置

对于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上,确保你已经按照官方Ollama参考设置了api服务器:

Ollama FAQ

简要说明

该指南似乎与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服务器来提供页面服务。

Ollama模型配置

对于Ollama模型配置,使用以下Apache VirtualHost设置:

导航到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

Ollama服务器的SSL部分

运行以下命令:

导航到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

https://server.com打开你的站点!

恭喜,你的_类似ChatGPT风格的UI_现在正在提供具有RAG、RBAC和多模态功能的AI服务!如果你还没有下载Ollama模型,请立即下载!

如果你遇到任何配置错误或问题,请提交issue或参与我们的讨论。这里有很多友好的开发者可以帮助你。

让我们一起让这个UI对每个人都更加友好!

感谢选择宇光同行AI chat平台作为你的AI界面!

本文档由来自菲律宾的宇光同行AI chat平台爱好者Bob Reyes编写。