Dify 架构由多个独立模块协作构成:Nginx 负责入口路由,web
提供前端 UI,api
+ worker
通讯并处理业务逻辑,plugin_daemon
与 sandbox
实现插件扩展以及计算隔离,最终配合 Postgres、Redis 与 Weaviate 等存储组件支持 LLMOps。

1.请求入口:Nginx反向代理智能调度
Dify 使用 Nginx 作为统一网关,把不同路径的请求转发到对应组件:
-
静态资源与前端界面
/
、/explore
→web:3000
; -
API 请求与文件上传
/api
、/v1
、/files
→api:5001
; -
插件 Webhook
/e/{hook_id}
→plugin_daemon:5002
;
这个路由配置写在 Docker 的 nginx/conf.d/default.conf.template
中,可根据部署调整 IP 或端口。
2.前端流程:Web与API协作
web:3000
提供 React 单页应用,界面加载后再发 API 请求获取数据。所有对外请求均被隔离于浏览器之下,后端通过代理进行流量控制与缓存优化。外部 HTTP 请求节点(HTTP Request Node)均通过 Squid 代理 /ssrf_proxy
来防御 SSRF 攻击。缓存命中则通过 Redis 保持超低延迟响应 。
3.核心API+Worker:业务处理核心
api:5001
是 Dify 的业务入口,可采用 Gunicorn + Flask 构建。所有用户请求如聊天、上传文件、调用插件等,都由这里接收处理,然后通过 Celery 推送任务到 worker
执行并异步完成。
-
数据持久化由 PostgreSQL(
db:5432
)负责; -
Redis(
redis:6379
)保存短期缓存、速率限制和状态; -
Weaviate(
vector database:8080
)用于存储嵌入向量和支持 RAG 搜索。
4.插件生态:Plugin Daemon+Sandbox
插件系统由两部分组成:
-
Plugin Daemon (
plugin_daemon:5002
):监听插件调用生命周期,允许前端或 API 发起工具调用形成 back-invoke;同时接收 webhook 事件至/e/{hook_id}
路径,自动注入到绑定的工作流。 -
Sandbox (
sandbox:8194
):用于执行不可信的插件代码,有严格的资源与权限限制。
这种设计既便于插件开发,也确保系统安全隔离。
5.安全体系:SSRF、签名、沙箱保障
Dify 架构重点关注安全:
(1)SSRF 防护:所有外部 URL 请求走 ssrf_proxy
,且可配置白名单与流量限制;
(2)身份验证:使用 SECRET_KEY
、插件签名机制与 Redis 存储 token 以保证访问和调用安全;
(3)执行隔离:插件代码只在 Sandbox 环境运行,不影响主机及 API 服务安全。
6.弹性扩展:该架构支持横向扩展
Dify 采用模块化架构设计,使系统具备高度的可扩展性与灵活部署能力。通过简单配置,用户即可根据业务需求实现性能扩展与组件替换:
(1)可横向增加 API 实例(即 api 服务容器)以提升请求处理的并发能力和整体吞吐;
(2)可扩展 Worker 实例数量,加速异步任务处理(如向量嵌入、数据集构建、插件执行等);
(3)支持无缝替换向量数据库(如将默认的 Weaviate 替换为 Qdrant、Milvus 等),只需调整相关环境变量即可,无需更改任何业务逻辑或代码。
其中,核心控制参数如下:
-
CELERY_WORKER_AMOUNT
:定义异步任务 Worker 的并发数,提升处理能力; -
SERVER_WORKER_AMOUNT
:配置 API 服务的 Gunicorn 进程数量,增强请求吞吐; -
VECTOR_STORE
:用于切换向量数据库类型(如设为weaviate
、qdrant
或milvus
); -
VECTOR_STORE_URL
、VECTOR_STORE_API_KEY
等:用于对接目标向量数据库的具体连接参数。
上述配置项均支持 即插即用,仅需在 .env
或 docker-compose.yml
中设置,无需修改代码或镜像内容。修改后重启对应服务即可生效,使得 Dify 在私有部署、企业集成或云原生环境中具备极强的适配性与可维护性。
参考文献
[0] docker-compose.png中的数据流程解析:https://z0yrmerhgi8.feishu.cn/wiki/RYIhwj1Nli2h1UkHYG9cl1GCnSg
[1] https://github.com/langgenius/dify/blob/1.5.0/docker/docker-compose.png
知识星球:Dify源码剖析及答疑,Dify扩展系统源码,AI书籍课程|AI报告论文,公众号付费资料。加微信buxingtianxia21
进NLP工程化资料群,以及Dify交流群。
(文:NLP工程化)