在Ubuntu 22.04上高效部署Dify与vLLM服务的全流程指南当开发者需要在私有化环境中快速搭建AI能力时Dify与vLLM的组合正成为热门选择。本文将带您从零开始在Ubuntu 22.04系统上完成整套服务的部署特别针对内网环境优化配置并分享实际部署中的经验技巧。1. 环境准备与基础配置在开始部署前我们需要确保系统环境满足基本要求。Ubuntu 22.04 LTS作为长期支持版本提供了稳定的基础。建议使用至少16GB内存的服务器如果涉及大模型推理32GB以上内存和NVIDIA显卡如T4或A10G会获得更好体验。首先更新系统软件包sudo apt update sudo apt upgrade -y安装必要的工具链sudo apt install -y git curl wget python3-pip python3-venv对于NVIDIA显卡用户需要确保驱动和CUDA工具包已正确安装。可以通过以下命令验证nvidia-smi2. Docker环境搭建与优化容器化部署能极大简化依赖管理。我们使用Docker作为基础运行环境以下是优化后的安装步骤# 安装Docker官方GPG密钥 sudo install -m 0755 -d /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg sudo chmod ar /etc/apt/keyrings/docker.gpg # 添加Docker仓库 echo \ deb [arch$(dpkg --print-architecture) signed-by/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \ $(. /etc/os-release echo $VERSION_CODENAME) stable | \ sudo tee /etc/apt/sources.list.d/docker.list /dev/null # 安装Docker引擎 sudo apt update sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin配置Docker以非root用户运行sudo usermod -aG docker $USER newgrp docker优化Docker配置创建或修改/etc/docker/daemon.json{ log-driver: json-file, log-opts: { max-size: 100m, max-file: 3 }, default-ulimits: { nofile: { Name: nofile, Hard: 65535, Soft: 65535 } } }重启Docker服务使配置生效sudo systemctl restart docker3. vLLM服务部署与模型加载vLLM作为高性能推理引擎能显著提升大语言模型的吞吐量。我们首先准备Python环境python3 -m venv vllm-env source vllm-env/bin/activate安装优化后的依赖项pip install -U pip setuptools wheel pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121 pip install xformers triton vllm modelscope对于中文Embedding任务我们选用nlp_gte_sentence-embedding_chinese-base模型from modelscope import snapshot_download model_dir snapshot_download(iic/nlp_gte_sentence-embedding_chinese-base)启动vLLM服务建议使用tmux或screen保持会话vllm serve $HOME/.cache/modelscope/hub/iic/nlp_gte_sentence-embedding_chinese-base \ --port 8000 \ --dtype float16 \ --gpu-memory-utilization 0.9 \ --max-num-seqs 256关键参数说明--dtype float16: 使用半精度减少显存占用--gpu-memory-utilization: 控制显存使用比例--max-num-seqs: 提高并发处理能力4. Dify平台部署与配置Dify作为AI应用开发平台提供了从模型管理到应用部署的全套功能。以下是部署步骤克隆最新代码库git clone https://github.com/langgenius/dify.git cd dify/docker配置环境变量cp .env.example .env nano .env # 根据实际情况修改配置特别注意以下配置项# 数据库配置 POSTGRES_PASSWORDyour_strong_password REDIS_PASSWORDyour_strong_password # 服务端口 NGINX_HTTP_PORT9000 API_PORT5001 WEB_PORT3000 # 模型服务配置 OPENAI_API_KEYsk-xxxxxx # 可留空使用本地模型 OPENAI_API_BASEhttp://localhost:8000/v1 # 指向本地vLLM服务启动服务docker compose up -d服务启动后可以通过以下URL访问初始化页面http://your_server_ip:9000/install主界面http://your_server_ip:90005. 高级功能集成与优化5.1 Rerank模型部署对于需要重排序(Rerank)的场景我们可以部署mxbai-rerank-large-v2模型from modelscope import snapshot_download model_dir snapshot_download(mixedbread-ai/mxbai-rerank-large-v2)启动独立的vLLM服务vllm serve $HOME/.cache/modelscope/hub/mixedbread-ai/mxbai-rerank-large-v2 \ --port 7000 \ --dtype float16 \ --gpu-memory-utilization 0.8在Dify中配置Rerank服务进入模型供应商设置添加自定义API端点http://localhost:7000/v1保存后即可在知识库中使用该功能5.2 性能调优建议内存优化配置# 在docker-compose.yml中添加资源限制 services: api: deploy: resources: limits: memory: 8G cpus: 2Nginx调优修改nginx/nginx.confworker_processes auto; events { worker_connections 4096; multi_accept on; } http { client_max_body_size 100M; keepalive_timeout 65; keepalive_requests 1000; }数据库优化-- 在PostgreSQL中执行 ALTER SYSTEM SET shared_buffers 2GB; ALTER SYSTEM SET effective_cache_size 6GB; ALTER SYSTEM SET work_mem 32MB; ALTER SYSTEM SET maintenance_work_mem 512MB;6. 常见问题解决方案在实际部署中可能会遇到以下典型问题GPU显存不足解决方案降低--dtype到float16或bfloat16添加--swap-space 8G参数允许使用磁盘交换端口冲突# 查看端口占用 sudo lsof -i :8000 # 终止占用进程 sudo kill -9 PID模型下载缓慢# 使用镜像源 export MODEL_SCOPE_CACHE/path/to/cache export MODEL_SCOPE_ENDPOINThttps://mirror.example.comDocker容器启动失败# 查看日志 docker compose logs -f # 常见原因包括 # - 端口被占用 # - 环境变量配置错误 # - 磁盘空间不足知识库索引缓慢增加--worker-num参数提升并行处理能力确保使用SSD存储分批处理大型文档7. 安全加固措施生产环境部署需要考虑以下安全配置防火墙规则sudo ufw allow 9000/tcp # Dify web端口 sudo ufw allow 8000/tcp # vLLM API端口 sudo ufw enableHTTPS配置# 使用Lets Encrypt获取证书 sudo apt install certbot python3-certbot-nginx sudo certbot --nginx -d your-domain.com定期备份策略# 数据库备份 docker exec -t dify-postgres-1 pg_dumpall -U postgres dify_backup.sql # 模型备份 rsync -avz $HOME/.cache/modelscope/ /backup/modelscope/访问控制在.env中配置AUTH_ENABLEDtrue设置复杂的ADMIN_PASSWORD定期轮换API密钥
如何在Ubuntu 22.04上快速部署Dify和vLLM服务(含避坑指南)
发布时间:2026/6/16 10:24:01
在Ubuntu 22.04上高效部署Dify与vLLM服务的全流程指南当开发者需要在私有化环境中快速搭建AI能力时Dify与vLLM的组合正成为热门选择。本文将带您从零开始在Ubuntu 22.04系统上完成整套服务的部署特别针对内网环境优化配置并分享实际部署中的经验技巧。1. 环境准备与基础配置在开始部署前我们需要确保系统环境满足基本要求。Ubuntu 22.04 LTS作为长期支持版本提供了稳定的基础。建议使用至少16GB内存的服务器如果涉及大模型推理32GB以上内存和NVIDIA显卡如T4或A10G会获得更好体验。首先更新系统软件包sudo apt update sudo apt upgrade -y安装必要的工具链sudo apt install -y git curl wget python3-pip python3-venv对于NVIDIA显卡用户需要确保驱动和CUDA工具包已正确安装。可以通过以下命令验证nvidia-smi2. Docker环境搭建与优化容器化部署能极大简化依赖管理。我们使用Docker作为基础运行环境以下是优化后的安装步骤# 安装Docker官方GPG密钥 sudo install -m 0755 -d /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg sudo chmod ar /etc/apt/keyrings/docker.gpg # 添加Docker仓库 echo \ deb [arch$(dpkg --print-architecture) signed-by/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \ $(. /etc/os-release echo $VERSION_CODENAME) stable | \ sudo tee /etc/apt/sources.list.d/docker.list /dev/null # 安装Docker引擎 sudo apt update sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin配置Docker以非root用户运行sudo usermod -aG docker $USER newgrp docker优化Docker配置创建或修改/etc/docker/daemon.json{ log-driver: json-file, log-opts: { max-size: 100m, max-file: 3 }, default-ulimits: { nofile: { Name: nofile, Hard: 65535, Soft: 65535 } } }重启Docker服务使配置生效sudo systemctl restart docker3. vLLM服务部署与模型加载vLLM作为高性能推理引擎能显著提升大语言模型的吞吐量。我们首先准备Python环境python3 -m venv vllm-env source vllm-env/bin/activate安装优化后的依赖项pip install -U pip setuptools wheel pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121 pip install xformers triton vllm modelscope对于中文Embedding任务我们选用nlp_gte_sentence-embedding_chinese-base模型from modelscope import snapshot_download model_dir snapshot_download(iic/nlp_gte_sentence-embedding_chinese-base)启动vLLM服务建议使用tmux或screen保持会话vllm serve $HOME/.cache/modelscope/hub/iic/nlp_gte_sentence-embedding_chinese-base \ --port 8000 \ --dtype float16 \ --gpu-memory-utilization 0.9 \ --max-num-seqs 256关键参数说明--dtype float16: 使用半精度减少显存占用--gpu-memory-utilization: 控制显存使用比例--max-num-seqs: 提高并发处理能力4. Dify平台部署与配置Dify作为AI应用开发平台提供了从模型管理到应用部署的全套功能。以下是部署步骤克隆最新代码库git clone https://github.com/langgenius/dify.git cd dify/docker配置环境变量cp .env.example .env nano .env # 根据实际情况修改配置特别注意以下配置项# 数据库配置 POSTGRES_PASSWORDyour_strong_password REDIS_PASSWORDyour_strong_password # 服务端口 NGINX_HTTP_PORT9000 API_PORT5001 WEB_PORT3000 # 模型服务配置 OPENAI_API_KEYsk-xxxxxx # 可留空使用本地模型 OPENAI_API_BASEhttp://localhost:8000/v1 # 指向本地vLLM服务启动服务docker compose up -d服务启动后可以通过以下URL访问初始化页面http://your_server_ip:9000/install主界面http://your_server_ip:90005. 高级功能集成与优化5.1 Rerank模型部署对于需要重排序(Rerank)的场景我们可以部署mxbai-rerank-large-v2模型from modelscope import snapshot_download model_dir snapshot_download(mixedbread-ai/mxbai-rerank-large-v2)启动独立的vLLM服务vllm serve $HOME/.cache/modelscope/hub/mixedbread-ai/mxbai-rerank-large-v2 \ --port 7000 \ --dtype float16 \ --gpu-memory-utilization 0.8在Dify中配置Rerank服务进入模型供应商设置添加自定义API端点http://localhost:7000/v1保存后即可在知识库中使用该功能5.2 性能调优建议内存优化配置# 在docker-compose.yml中添加资源限制 services: api: deploy: resources: limits: memory: 8G cpus: 2Nginx调优修改nginx/nginx.confworker_processes auto; events { worker_connections 4096; multi_accept on; } http { client_max_body_size 100M; keepalive_timeout 65; keepalive_requests 1000; }数据库优化-- 在PostgreSQL中执行 ALTER SYSTEM SET shared_buffers 2GB; ALTER SYSTEM SET effective_cache_size 6GB; ALTER SYSTEM SET work_mem 32MB; ALTER SYSTEM SET maintenance_work_mem 512MB;6. 常见问题解决方案在实际部署中可能会遇到以下典型问题GPU显存不足解决方案降低--dtype到float16或bfloat16添加--swap-space 8G参数允许使用磁盘交换端口冲突# 查看端口占用 sudo lsof -i :8000 # 终止占用进程 sudo kill -9 PID模型下载缓慢# 使用镜像源 export MODEL_SCOPE_CACHE/path/to/cache export MODEL_SCOPE_ENDPOINThttps://mirror.example.comDocker容器启动失败# 查看日志 docker compose logs -f # 常见原因包括 # - 端口被占用 # - 环境变量配置错误 # - 磁盘空间不足知识库索引缓慢增加--worker-num参数提升并行处理能力确保使用SSD存储分批处理大型文档7. 安全加固措施生产环境部署需要考虑以下安全配置防火墙规则sudo ufw allow 9000/tcp # Dify web端口 sudo ufw allow 8000/tcp # vLLM API端口 sudo ufw enableHTTPS配置# 使用Lets Encrypt获取证书 sudo apt install certbot python3-certbot-nginx sudo certbot --nginx -d your-domain.com定期备份策略# 数据库备份 docker exec -t dify-postgres-1 pg_dumpall -U postgres dify_backup.sql # 模型备份 rsync -avz $HOME/.cache/modelscope/ /backup/modelscope/访问控制在.env中配置AUTH_ENABLEDtrue设置复杂的ADMIN_PASSWORD定期轮换API密钥