2026/4/9 17:29:04
网站建设
项目流程
seo网站推广技术,给别人做的网站涉及到违法,河南省新闻出版局,湖南专业seo优化责任边界声明#xff1a;本文聚焦 Docker Compose 形态下的生产部署实践#xff0c;不涵盖 Kubernetes / Helm 等大规模集群场景。
Dify 是由 LangGenius 开发的开源 LLM 应用开发平台#xff0c;可帮助开发者与团队快速构建 AI 应用#xff08;如智能聊天机器人、私有知识…责任边界声明本文聚焦 Docker Compose 形态下的生产部署实践不涵盖 Kubernetes / Helm 等大规模集群场景。Dify 是由 LangGenius 开发的开源 LLM 应用开发平台可帮助开发者与团队快速构建 AI 应用如智能聊天机器人、私有知识库问答、自动化业务工作流等。它支持可视化开发界面、多模型集成GPT、文心一言、通义千问等并提供完整的前后端架构通过自托管部署能有效保障数据隐私与安全广泛适用于企业私有环境、定制化 AI 服务场景。本文为企业级可落地的 Dify 部署指南包含环境准备、Docker / Docker Compose 安全安装、轩辕镜像加速、「测试/生产双模式」部署方案、前后端关联配置、生产级安全加固及排错要点。文中所有配置均标注官方/镜像来源按步骤执行即可稳定运行。适用场景对照表部署场景推荐部署方式核心特征本地体验/功能测试方法 B最小化 Compose轻量快速、仅核心组件、无安全加固内网私有化部署方法 A官方 Compose组件完整、可持久化、基础安全配置企业生产环境方法 A 反向代理 外部存储高可用、TLS 加密、权限隔离、可监控 准备工作若你的系统尚未安装 Docker请先完成安装。以下提供一键安装脚本附安全声明也可选择 Docker 官方安装方式。Linux Docker Docker Compose 一键安装一键安装配置脚本适配国内环境该脚本支持多种 Linux 发行版一键安装 Docker、Docker Compose 并自动配置轩辕镜像加速源。bash (wget -qO- https://xuanyuan.cloud/docker.sh)⚠️ 安全提示生产环境强制要求该脚本将以root权限执行涉及系统配置修改、软件安装等操作企业/生产环境必须先下载脚本本地审计wget https://xuanyuan.cloud/docker.sh确认无风险后再执行或直接使用 Docker 官方安装文档测试/个人环境可直接使用脚本已做国内镜像适配无需额外配置一、核心组件说明dify-api/dify-web及依赖关系dify-api后端核心服务API 接口、任务调度、模型调用、数据存储等镜像可从 Docker Hub 或轩辕加速源获取。(hub.docker.com)dify-web前端管理控制台Next.js 开发通过环境变量指向后端 API不直接处理业务逻辑。(hub.docker.com)worker/celery异步任务处理组件向量计算、文件解析、LLM 异步调用等与dify-api共享存储和配置是生产环境不可缺少的组件。依赖关系前端仅通过 API 调用后端后端依赖数据库MySQL、对象存储MinIO、向量数据库Worker 负责异步任务与 API 共享存储和配置。(Dify 文档)二、部署前准备硬件 软件规范硬件要求分场景场景CPU内存磁盘备注测试/轻量使用≥ 2≥ 8GB≥ 20GB仅运行核心组件禁用复杂向量计算生产/企业使用≥ 4≥ 16GB≥ 50GB需预留向量数据库、日志存储空间软件要求Docker推荐 Docker Engine 24.0Linux Server 环境不建议在生产环境使用 Docker Desktop其主要适用于开发/本地测试场景Docker Compose必须使用 V2 版本命令为docker compose而非docker-compose操作系统推荐 Ubuntu 22.04 LTS / Rocky Linux 9 / AlmaLinux 9不再推荐使用已停止维护的 CentOS Linux三、镜像来源安全 稳定优先镜像标签规范生产强制要求❌ 绝对禁止使用latest标签会随机拉取新版本导致 API 兼容、数据库 schema 冲突✅ 生产环境必须指定具体版本号如0.10.3版本号需与 Dify 官方发布一致Dify 版本列表镜像拉取命令示例## 1. 生产环境推荐指定版本 # 从 Docker Hub外网环境 docker pull langgenius/dify-api:0.10.3 docker pull langgenius/dify-web:0.10.3 # 从轩辕加速源国内环境替换为专属域名 docker pull docker.xuanyuan.run/langgenius/dify-api:0.10.3 docker pull docker.xuanyuan.run/langgenius/dify-web:0.10.3 ## 2. 测试环境仅临时使用不推荐 docker pull langgenius/dify-api:latest docker pull langgenius/dify-web:latest轩辕镜像加速说明国内网络拉取官方镜像慢/失败时可访问 轩辕镜像 获取专属加速地址无需登录即可拉取。四、方法 A —— 官方 Github 仓库 Docker Compose生产/推荐说明官方仓库提供完整的docker-compose.yml、.env模板包含所有核心组件API、Web、MySQL、MinIO、向量数据库、Worker适配生产环境的持久化、权限配置是企业部署的首选方案。(Dify 文档)步骤按序执行生产级规范克隆官方仓库指定版本标签避免主分支不稳定git clone https://github.com/langgenius/dify.git cd dify # 切换到稳定版本示例v0.10.3 git checkout v0.10.3进入 Docker 部署目录复制配置模板cd docker cp .env.example .env ## 复制配置模板编辑.env生产级关键配置APP_API_URL/CONSOLE_API_URL前端访问后端的基础 URL仅写主机端口如http://192.168.1.100禁止加/api子路径错误配置会导致前端 API 请求 404。(GitHub)SECRET_KEY核心加密密钥生产环境必须自定义强随机字符串且一旦设置禁止修改修改会导致 JWT 令牌失效、已加密数据无法解密。数据库/MinIO 密码必须替换默认值使用大小写字母数字特殊符号的强密码。存储配置/app/api/storage需挂载到宿主机固定目录且仅需在 dify-api 和 worker 容器间共享dify-web 无需挂载该目录。(Dify 文档)启动服务指定 Compose 文件后台运行docker compose -f docker-compose.yml up -d验证启动状态生产级检查# 1. 查看容器运行状态 docker compose ps # 所有服务应显示 Up 状态 # 2. 查看 API 服务日志容器名以实际 Compose 配置为准 docker compose logs -f dify-api # 3. 访问前端页面替换为你的服务器 IP # 浏览器打开 http://服务器IP应显示 Dify 登录界面五、方法 B —— 最小化 Docker Compose仅测试/Demo⚠️ 重要警告强制阅读该配置仅用于本地功能测试禁止直接用于生产环境存在弱口令、端口暴露、无异步任务处理等安全/功能缺陷生产环境必须使用方法 A并补充反向代理、TLS 加密、权限隔离等配置最小化 Compose 示例docker-compose.min.ymlversion: 3.8 services: mysql: image: docker.xuanyuan.run/mysql:8.0 environment: # 示例占位密码仅用于本地测试禁止用于任何生产环境 MYSQL_ROOT_PASSWORD: StrongPssw0rd_2026 MYSQL_DATABASE: dify volumes: - db_data:/var/lib/mysql restart: unless-stopped # 生产建议禁用端口映射仅内网访问 # ports: # - 3306:3306 minio: image: docker.xuanyuan.run/minio/minio command: server /data environment: # 示例占位密码仅用于本地测试禁止用于任何生产环境 MINIO_ROOT_USER: dify_minio_admin MINIO_ROOT_PASSWORD: MinIOStrongPss0rd # ❌ 测试用端口暴露生产必须删除仅内网访问 # ports: # - 9000:9000 volumes: - minio_data:/data restart: unless-stopped dify-api: image: docker.xuanyuan.run/langgenius/dify-api:0.10.3 depends_on: - mysql - minio environment: DATABASE_URL: mysqlpymysql://root:StrongPssw0rd_2026mysql:3306/dify STORAGE_DRIVER: local SECRET_KEY: your_strong_random_secret_key_here_123456 APP_API_URL: http://dify-api:5001 volumes: - ./storage:/app/api/storage ## 仅 API 需挂载Web 无需挂载 ports: - 5001:5001 restart: unless-stopped # 生产建议添加健康检查 healthcheck: test: [CMD, curl, -f, http://localhost:5001/health] interval: 30s timeout: 10s retries: 3 dify-web: image: docker.xuanyuan.run/langgenius/dify-web:0.10.3 depends_on: - dify-api environment: APP_API_URL: http://dify-api:5001 ports: - 80:3000 restart: unless-stopped # 生产建议添加健康检查 healthcheck: test: [CMD, curl, -f, http://localhost:3000] interval: 30s timeout: 10s retries: 3 volumes: db_data: minio_data:healthcheck 版本说明/health接口以当前 Dify 版本为准如升级后接口路径变更请以官方 API 文档或容器启动日志为准调整检查路径。启动与验证测试用# 启动 docker compose -f docker-compose.min.yml up -d # 验证容器名以实际 Compose 配置为准 docker compose -f docker-compose.min.yml logs -f # 浏览器访问 http://localhost 即可进入测试界面六、前端dify-web与后端dify-api关联配置核心前端通过环境变量获取后端 API 地址生产环境需严格遵循以下规范核心环境变量变量名作用配置示例注意事项APP_API_URL前端应用的 API 基础地址http://192.168.1.100仅写主机端口禁止加/api路径CONSOLE_API_URL控制台的 API 基础地址http://192.168.1.100与APP_API_URL保持一致配置示例.env文件# 生产环境域名访问带 HTTPS APP_API_URLhttps://dify-api.example.com CONSOLE_API_URLhttps://dify-api.example.com # 测试环境IP 访问 APP_API_URLhttp://192.168.1.100 CONSOLE_API_URLhttp://192.168.1.100关键提醒Dify 前端基于 Next.js 开发部分变量需带NEXT_PUBLIC_前缀优先参考官方.env.example模板避免变量名错误导致前端无法调用 API。(Dify 文档)七、生产环境 Docker 通用加固建议1. 容器运行规范所有服务必须设置restart: unless-stopped避免服务器重启后容器未启动核心服务API、MySQL、MinIO添加healthcheck自动检测服务状态异常时重启高安全要求环境使用 Rootless Docker 运行容器或自建非 root 镜像官方镜像默认以 root 运行存在权限风险2. 网络与端口规范禁止直接暴露数据库、MinIO、向量数据库端口到公网仅内网访问使用 Nginx/Traefik 做反向代理统一暴露 80/443 端口并配置 TLS 加密Lets Encrypt 免费证书配置防火墙如 iptables/ufw仅开放必要端口3. 存储与备份规范数据库、MinIO、storage 目录挂载到独立数据盘避免系统盘满导致服务崩溃配置定时备份每日备份 MySQL 数据库、MinIO 数据、storage 目录生产环境优先使用外部托管数据库/对象存储如阿里云 RDS、OSS简化运维八、高级定制与升级规范1. 本地构建镜像定制化需求若需修改前端代码或自定义配置可在web/目录构建镜像cd dify/web docker build -t your-registry/dify-web:0.10.3 .参考GitHub 构建示例2. 切换向量数据库Dify 支持 Weaviate、Milvus、Qdrant 等向量数据库修改.env中VECTOR_STORE变量即可切换需确保 API 和 Worker 配置一致。(Dify 文档)3. 版本升级生产级流程升级前必须执行以下步骤避免数据丢失或兼容问题备份 MySQL 数据库mysqldump -u root -p dify dify_backup.sql备份/app/api/storage目录cp -r /path/to/storage /path/to/storage_backup备份 MinIO 数据cp -r /path/to/minio_data /path/to/minio_backup记录当前部署的 Dify 版本号与 Git Tag便于异常时快速回滚确认新版本与当前版本的兼容性参考官方升级文档修改docker-compose.yml中的镜像版本号执行docker compose up -d九、常见问题 排查步骤快速清单1. 网页打不开/502 错误检查防火墙是否开放端口容器是否全部Up状态docker compose ps查看 Nginx/反向代理日志确认前端是否能访问后端 API检查服务器网络是否能 ping 通是否有网络策略限制2. 前端 API 请求 404/报错检查.env中APP_API_URL是否正确仅主机端口无/api查看 API 服务日志docker compose logs -f dify-api确认 API 服务是否正常监听3. 文件上传/读取失败确认/app/api/storage仅在 dify-api 和 worker 容器间共享Web 无需挂载检查 storage 目录权限推荐chmod 755避免权限不足4. 镜像拉取失败切换到轩辕加速镜像源或检查网络是否能访问 Docker Hub确认镜像版本号正确避免使用不存在的版本十、Dify 部署架构图1. 生产级架构方法 A┌──────────────┐ │ Client │ │ Browser/API │ └──────┬───────┘ │ HTTPS ▼ ┌──────────────┐ │ Nginx / LB │ ← 反向代理TLS端口转发 └──────┬───────┘ │ ┌─────▼──────────────┐ │ dify-web │ ← 前端仅API调用无本地存储 │ 管理台 / Console │ └─────┬──────────────┘ │ REST API ┌─────▼──────────────┐ │ dify-api │ ← 核心服务Auth/LLM/File └─────┬───────┬──────┘ │ │ │ ├──────────┐ │ │ │ ┌──────▼───┐ ┌─▼────────┐ ┌────────────┐ │ MySQL │ │ Vector │ │ MinIO │ │ Metadata │ │ DB │ │ Object │ └──────────┘ └───────────┘ └────────────┘ ▲ │ ┌──────┴────────┐ │ Worker/Celery│ ← 异步任务向量计算/文件解析 └───────────────┘核心特征API/Worker 共享 storage所有后端服务内网隔离反向代理统一暴露端口全组件持久化存储。2. 测试级架构方法 B┌──────────────┐ │ Client │ │ Browser/API │ └──────┬───────┘ │ HTTP ▼ ┌──────────────┐ │ dify-web │ └──────┬───────┘ │ REST API ▼ ┌──────────────┐ │ dify-api │ └──────┬───────┘ │ ├──┬──────────┐ │ │ │ ┌──────▼──┐│ ▼ │ MySQL ││ MinIO端口暴露 └────────┘│ │核心特征无反向代理端口直接暴露无 Worker 组件仅核心功能可用无生产级保障。十一、实践小结安装 Docker/Compose测试环境可使用一键脚本需审计生产环境优先官方安装方式。选择部署方式测试用方法 B最小化 Compose生产用方法 A官方 Compose。配置核心参数指定镜像版本号、自定义强密码、正确配置APP_API_URL、共享 API/Worker 的 storage 目录。启动并验证检查容器状态和日志确认前端可正常访问后端 API。生产加固添加反向代理/TLS、健康检查、定时备份禁止暴露敏感端口。版本记录升级前后务必记录 Dify 版本号与 Git Tag确保可回滚。生产部署前 Checklist检查项标准要求完成状态镜像版本已固定具体版本号未使用latest☑密钥配置SECRET_KEY已自定义强随机字符串☑端口安全数据库/MinIO 未暴露公网端口☑网络加密已配置反向代理 TLS 证书☑数据备份已完成数据库、storage、MinIO 首次全量备份☑容灾测试测试容器重启后可自动恢复服务☑版本记录已记录当前部署版本号与 Git Tag便于回滚☑参考与延伸阅读Dify 官方 Docker Compose 部署文档Dify API 镜像Docker HubDify Web 镜像Docker Hub轩辕镜像加速dify-apiDify 环境变量配置文档Dify 版本发布列表总结版本与标签生产环境必须指定具体镜像版本号禁止使用latest标签避免版本兼容问题升级前后需记录版本号与 Git Tag便于回滚。安全规范一键安装脚本需审计后执行最小化 Compose 仅用于测试生产需替换弱口令、关闭敏感端口、配置反向代理/TLS密码配置行需标注“示例占位禁止生产使用”。存储与配置/app/api/storage仅需在 API 和 Worker 容器间共享Web 无需挂载SECRET_KEY一旦设置禁止修改升级前必须备份数据。架构区分测试环境用最小化 Compose 快速验证功能生产环境用官方 Compose 并补充健康检查、备份、权限隔离等加固措施测试架构图移除无关的 SQLite 标识与示例配置保持一致。日志命令优先使用docker compose logs -f 服务名查看日志规避容器名不一致的问题。