首页 > 教程攻略 > ai资讯 >实操修改Dify服务端口设置

实操修改Dify服务端口设置

来源:互联网 时间:2026-07-22 15:11:56

最近家里本地部署的应用越来越多,大多是走Docker容器的方式,服务之间端口冲突的问题就逐渐冒了出来。相信不少朋友都遇到过类似情况——某天突然发现之前的Dify服务登不上了,折腾半天才发现是端口被抢了。今天就借这个典型案例,聊聊端口冲突怎么解决,顺便给出家庭网络环境的端口规划建议。

实操修改Dify服务端口设置

家庭网络端口规划建议

如果不做规划,后面只会越来越乱。可以简单划分两个区间:

  • 30001–39999

    :专门给Docker容器内部的服务端口使用
  • 20001–29999

    :留给家庭网络对外暴露的服务端口

这样按区间管理,后续新增应用时就不会互相打架了。

Dify的端口冲突案例

这次出问题的环境是Windows 11下的WSL,里面跑着SGLang的Docker环境,结果把原来Dify的Nginx端口(80和443)给占用了。Dify默认的访问端口正好是80,冲突后自然就登不上了。另外,Dify工作流对外发布的默认端口是3000,也得一并调整。

具体操作步骤

1. 进入Dify的Docker配置目录

在WSL环境中,进入 ~/dify/docker/ 目录。注意 .env 是隐藏文件,需要用 ls -a 才能看到。

2. 备份配置文件(非常重要)

修改前一定先备份,方便日后回退。备份命令如下(Ubuntu环境下记得加 sudo):

sudo cp .env .env.20250625.dify1-4-3.bak
sudo cp docker-compose.yaml docker-compose.yaml.v1.4.3-20250625.bak

文件名建议包含当前版本号和日期,这样以后想恢复时一目了然。

3. 修改Dify内部Nginx端口(可选)

编辑 .env 文件:

sudo vi /home/leason/dify/docker/.env

找到 NGINX_PORTNGINX_SSL_PORT,默认是80和443。这两个是Docker内部端口,理论上可以不改,因为每个容器的网络是隔离的。不过为了方便识别,也可以调整成类似31280和31443。但为了避免改出问题,这次选择保持原样80和443——反正内部不冲突。

4. 修改Dify对外映射端口(必须改)

继续找 EXPOSE_NGINX_PORTEXPOSE_NGINX_SSL_PORT,默认也是80和443。这两个是Dify对外暴露的端口,必须更改。本例中改成了2**80和2*443(具体数字根据自己的规划填)。

5. 修改Dify工作流对外服务地址

找到 SERVICE_API_URLAPP_WEB_URL,默认是空值。需要在等号后面填上完整的IP和端口。比如本机内网IP固定为192.168.*.*,那就写成 http://192.168.*.*:2***0(端口号可自行设定)。

6. 重启Dify服务

sudo docker compose down
sudo docker compose up -d

重启后在浏览器里访问 http://固定IP:2**80/apps,成功进入Dify页面,问题解决。

验证与注意事项

  • 修改后务必通过浏览器测试访问,确保新端口可用。
  • 如果还有其它Docker服务占用了端口,遵循同样的规划区间调整即可。
  • 备份文件妥善保存,万一新配置有问题可以一键还原。

端口冲突是本地部署绕不开的坑,提前做好规划、规范修改步骤,就能省去很多排查时间。