docker下安装好dify之后,默认的80端口号跟别的项目有冲突,需要修改端口号,怎么修改
修改 Dify 的默认端口(如从 80 改为 8081),不能只改一处,需要同时调整 端口映射 和 前后端通信地址,否则即使页面能打开,API 请求和登录功能也会出问题。
修改步骤
1. 进入 Dify 部署目录
cd dify/docker # 进入你的 Dify Docker 部署目录
2. 编辑 .env 文件,修改端口映射
vim .env
找到以下配置项并修改:
# 将默认的 80 改为你想要的新端口,例如 8081
EXPOSE_NGINX_PORT=8081
# 如果暂时不用 HTTPS,建议先关闭强制跳转,避免调试时被重定向
NGINX_HTTPS_ENABLED=false
3. 配置前端 API 通信地址(关键!)
很多人改完端口后发现登录失败或接口报错,就是因为前端不知道后端已经换了"门牌号"。需要将以下四个 URL 变量改为完整的访问地址(必须包含协议、IP/域名和新端口):
# 假设你的服务器 IP 是 192.168.1.100,新端口是 8081
CONSOLE_API_URL=http://192.168.1.100:8081
CONSOLE_WEB_URL=http://192.168.1.100:8081
SERVICE_API_URL=http://192.168.1.100:8081
APP_WEB_URL=http://192.168.1.100:8081
💡 说明:
- 本地测试可直接使用
http://localhost:8081- 如果部署在云服务器上,IP 换成服务器的公网 IP
- 这些地址会影响 OAuth 回调、邀请链接生成等,务必准确填写
4. 重启 Dify 服务使配置生效
docker compose down # 停止并移除容器
docker compose up -d # 重新创建并后台启动
等待 1-2 分钟,待所有容器初始化完成。
5. 验证访问
打开浏览器访问 http://你的服务器IP:8081,应该能看到 Dify 登录页面。
修改检查清单 ✅
|----------|--------------------------------------------------------------------|
| 检查项 | 预期结果 |
| 容器状态 | docker compose ps 显示所有服务为 Up |
| 端口监听 | netstat -tulpn | grep 8081 能看到 Docker 代理在监听 |
| API 健康检查 | curl http://localhost:8081/health 返回 {"status": "ok"} |
| 页面访问 | 浏览器打开 http://IP:8081 显示 Dify 界面 |
| 登录功能 | 能正常登录,无跨域或 301 重定向错误 |
常见问题
Q:改了端口还是访问不了?
检查防火墙是否放行了新端口:sudo ufw allow 8081/tcp(Ubuntu)或云服务器安全组规则。
Q:登录时跳转到 http://localhost 然后失败?
说明 CONSOLE_API_URL 或 APP_WEB_URL 没有正确配置带端口的地址,重新编辑 .env 并重启。
Q:HTTPS 跳转导致访问失败?
确认 .env 中 NGINX_HTTPS_ENABLED=false,等调试稳定后再配置证书。
Q:修改后插件下载超时?
可考虑配置国内 pip 镜像:
PIP_MIRROR_URL=https://pypi.tuna.tsinghua.edu.cn/simple
PLUGIN_PYTHON_ENV_INIT_TIMEOUT=360
PLUGIN_MAX_EXECUTION_TIMEOUT=1800
然后重启。
修改完成后,建议先用无痕模式或清除浏览器缓存测试,确保新端口下所有功能正常。