在Ubuntu Server上搭建多用户DeepSeek服务需分五步:一、为各用户创建独立账户与GPU权限,并配置隔离Python虚拟环境;二、部署多端口API实例,配合Nginx反向代理按用户路由;三、集成Redis实现会话管理、任务队列与每用户每分钟15次限流;四、通过CUDA_VISIBLE_DEVICES或MIG切片实现GPU资源隔离与显存配额;五、使用bind mount挂载用户专属模型、缓存及日志目录,并配置logrotate按用户归档。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

如果您希望在Ubuntu Server上搭建一个支持多用户并发访问的DeepSeek服务,则需围绕权限隔离、资源调度、API接入与会话管理进行系统性部署。以下是实现该目标的具体步骤:
一、配置多用户基础环境
为保障多用户独立运行与数据隔离,需为每个用户创建专属系统账户及独立Python虚拟环境,避免依赖冲突与权限越界。
1、使用adduser命令为每位用户创建独立账户:
sudo adduser user01
sudo adduser user02
2、为每个用户分配GPU访问权限(如使用NVIDIA设备):
sudo usermod -aG render,user01
sudo usermod -aG render,user02
3、切换至各用户目录并创建隔离虚拟环境:
su - user01
python3 -m venv ~/deepseek-env
source ~/deepseek-env/bin/activate
二、部署多实例DeepSeek API服务
采用进程级隔离方式启动多个DeepSeek API服务实例,每个实例绑定不同端口与用户上下文,配合反向代理实现统一入口与用户路由。
1、为user01配置API服务监听端口8001:
cd ~/deepseek && python app.py --host 127.0.0.1 --port 8001 --model-path /models/deepseek-r1-8b
2、为user02配置API服务监听端口8002:
su - user02 -c "cd ~/deepseek && python app.py --host 127.0.0.1 --port 8002 --model-path /models/deepseek-r1-32b"
3、在系统级安装nginx并配置反向代理规则,按请求头X-User-ID或子路径分发流量:
location /api/user01 { proxy_pass http://127.0.0.1:8001; }
三、启用Redis驱动的会话与队列管理
通过Redis集中管理用户会话状态、推理任务队列及速率限制策略,确保多用户间资源公平调度与历史上下文持久化。
1、安装并启动Redis服务:
sudo apt install redis-server -y
sudo systemctl enable redis-server
sudo systemctl start redis-server
2、在每个DeepSeek服务实例中配置Redis连接参数:
REDIS_URL=redis://127.0.0.1:6379/0
SESSION_DB=1
QUEUE_DB=2
3、启用基于用户ID的令牌桶限流:
每用户每分钟最多15次API调用,超限返回HTTP 429状态码
四、配置GPU资源隔离与显存配额
利用NVIDIA Container Toolkit或CUDA_VISIBLE_DEVICES机制,为不同用户实例分配独占GPU设备或显存切片,防止资源争抢导致服务降级。
1、确认GPU设备编号:
nvidia-smi -L
2、为user01指定GPU 0并限制最大显存使用为8GB:
su - user01 -c "CUDA_VISIBLE_DEVICES=0 python app.py --gpu-memory-limit 8192"
3、为user02指定GPU 1并启用MIG切片(若T4/A10等支持MIG):
sudo nvidia-smi -i 1 -mig 1
su - user02 -c "CUDA_VISIBLE_DEVICES=1/gpu/0 python app.py"
五、设置用户专属模型挂载与沙箱存储
通过Linux bind mount将各用户私有模型目录、缓存路径与日志目录映射至服务容器或进程空间,实现物理层数据隔离与审计可控。
1、为user01创建模型与缓存目录:
sudo mkdir -p /data/models/user01 /data/cache/user01 /data/logs/user01
sudo chown user01:user01 /data/models/user01 /data/cache/user01 /data/logs/user01
2、在启动脚本中挂载路径:
--model-path /data/models/user01
--cache-dir /data/cache/user01
--log-file /data/logs/user01/api.log
3、配置logrotate按用户分割日志,保留最近7天滚动归档,单文件不超过100MB










