使用Docker部署Dify的两种方式详解
2025年4月9日大约 2 分钟
Dify是一款强大的开源AI应用开发平台,本文将介绍两种基于Docker的部署方式:标准部署和Nginx反向代理部署;同时介绍如何开启HTTPS和绑定域名。
1.标准部署方案
1.1.基础部署步骤
- 按照Dify官方文档进行部署
- 服务默认监听
80
和443
接口 - 访问方式
- http://localhost
- http://your_ip
1.2.自定义域名配置
要绑定域名和开启Https,需要修改修改 .env
文件中的以下参数:
NGINX_SERVER_NAME=your_domain.com
NGINX_HTTPS_ENABLED=true
1.3.SSL证书配置注意事项
- 注意查看
.env
文件中的注释,确定SSL证书路径和名称 - 将证书文件放置于./nginx/ssl目录
- 如证书名称不一致,则修改
.env
文件
# if HTTPS_ENABLED is true, you're required to add your own SSL certificates/keys to the `./nginx/ssl` directory
# and modify the env vars below accordingly.
NGINX_SSL_CERT_FILENAME=dify.crt
NGINX_SSL_CERT_KEY_FILENAME=dify.key
NGINX_SSL_PROTOCOLS=TLSv1.1 TLSv1.2 TLSv1.3
1.4.完成
域名DNS配置、SSL证书配置按照普通流程即可。
至此,我们就可以通过 https://your_domain.com
访问服务
2.宿主机Nginx反向代理方案
如果宿主机本来就启动了nginx,占用了Dify容器的nginx端口,则可以通过宿主机nginx转发到Dify服务。
2.1.修改Dify端口映射
在 .env
中调整
# ------------------------------
# Docker Compose Service Expose Host Port Configurations
# ------------------------------
EXPOSE_NGINX_PORT=9100
EXPOSE_NGINX_SSL_PORT=9101
假设修改暴露到9100端口,则此时启动后,可以通过 http://localhost:9100
访问服务。
2.2.宿主机Nginx配置
创建 your_domain.com.conf
文件,随后重启Nginx。
server {
listen 80;
server_name your_domain.com;
return 301 https://$host$request_uri; # HTTP 跳转 HTTPS
}
server {
listen 443 ssl;
server_name your_domain.com;
# SSL 证书配置(替换成你的证书路径)
ssl_certificate /path/your_domain.com.pem;
ssl_certificate_key /path/your_domain.com.key;
ssl_protocols TLSv1.2 TLSv1.3;
# 反向代理到 Docker Nginx(HTTP 9100)
location / {
proxy_pass http://localhost:9100;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
2.3.完成
域名DNS配置、SSL证书配置按照普通流程即可。
至此,我们就可以通过 https://your_domain.com
访问服务