Dify - 部署高可用私有化系统指南

引言

Dify 是一个强大的多模态 AI 应用构建平台,但默认的部署方式仅适用于单机环境。本文将带你一步步将其升级为高可用、集群化、可扩展的私有部署系统,适配生产环境需求。

Dify 部署核心为开源工程 docker 目录下的 docker-compose.yaml 文件和 .env 文件,docker-compose.yaml 文件中配置了 Dify 部署的总体结构,包括:几个 Dify 自身工程(api、web、 work、sandbox等),还有 Dify 的一些依赖(nginx、PostgreSQL、Redis、罗列了各类向量数据库),具体结构可以参考这里.env 总结了一些常用变量,通过修改这些变量可以控制 docker-compose.yaml 的部署配置。.env.example 文件给出了一个单机环境部署,如果私有化高可用部署,我们可以在这个基础上进行修改。

部署依赖

1. PostgreSQL 高可用部署

推荐使用 Patroni + etcd + HAProxy 的高可用架构,当然也可以使用云服务:

步骤简述:
  1. 部署 etcd 集群(3节点)
  2. 部署 Patroni 管理的 PostgreSQL 集群(至少 3 节点)
  3. 部署 HAProxy,作为 Dify 的数据库访问入口

推荐使用 Kubernetes + Helm 部署。

修改 .env 配置:
DB_HOST=haproxy     # HAProxy 的服务名或负载均衡地址
DB_PORT=5432

docker-compose.yaml 中移除原来的 db 服务,改为连接外部 HAProxy。


2. Redis 集群部署

推荐采用 Redis Cluster 模式或 Redis Sentinel 模式。

使用 Redis Cluster,修改 .env 配置:
REDIS_USE_CLUSTERS=true
REDIS_CLUSTERS=redis-node1:6379,redis-node2:6379,redis-node3:6379
REDIS_CLUSTERS_PASSWORD=your_password

注意:Redis Cluster 模式下不支持 pub/sub 的全功能,如需 conversation 持久性,优先使用 Sentinel 模式。

docker-compose.yaml 中移除原来的 redis 服务


3. Milvus 向量数据库高可用部署

推荐使用:
修改 .env 配置:
VECTOR_STORE=milvus
MILVUS_URI=http://milvus-cluster-ip:19530

docker-compose.yaml 中移除原来所有的 vector 服务


部署服务

多节点服务部署(Nginx / API / Worker / Web 等)

默认部署方式所有组件都是单实例,推荐将关键服务配置为多节点运行,挂载共享存储。

组件拆分建议:

服务名称推荐副本数无状态说明
nginx2+负载均衡入口
api2+Web API 服务
worker2+Celery 消费者
web2+Web 前端
sandbox1-2执行代码逻辑
ssrf_proxy1-2安全代理
plugin_daemon1-2插件运行容器

所有服务需使用 external Redis、PostgreSQL、Milvus。

可以部署多台 Docker 服务,内部使用域名、代理、nginx负载,需要注意修改 ssrf_proxy 配置。

也可以用 Kubernetes + Helm 或者 Kubernetes + YAML,实现弹性伸缩和服务发现,github上有一些参考:helmYAML


精简后的 .env 示例(节选)

# PostgreSQL via HAProxy
DB_HOST=haproxy
DB_PORT=5432
DB_USERNAME=postgres
DB_PASSWORD=your-password
DB_DATABASE=dify

# Redis Cluster
REDIS_USE_CLUSTERS=true
REDIS_CLUSTERS=redis-node1:6379,redis-node2:6379,redis-node3:6379
REDIS_CLUSTERS_PASSWORD=your-password

# Milvus cluster
VECTOR_STORE=milvus
MILVUS_URI=http://milvus-cluster:19530

# The Alibaba Cloud OSS configurations,
ALIYUN_OSS_BUCKET_NAME=your-bucket-name
ALIYUN_OSS_ACCESS_KEY=your-access-key
ALIYUN_OSS_SECRET_KEY=your-secret-key
ALIYUN_OSS_ENDPOINT=https://oss-ap-southeast-1-internal.aliyuncs.com
ALIYUN_OSS_REGION=ap-southeast-1
ALIYUN_OSS_AUTH_VERSION=v4
ALIYUN_OSS_PATH=your-path

小结

通过本文部署方案,你可以将 Dify 系统升级为具备高可用、可扩展能力的企业级部署形态。无论是多节点的服务组件,还是高可用的底层存储系统,均能确保在高并发场景下稳定运行。

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值