DDEV环境下Nifi容器向Magento2容器发送POST请求遭拒绝
解决Nifi容器无法连接DDEV Magento2容器的问题
问题根源
从你的docker network ls输出可以看到,Nifi容器所在的网络(nifi_docker_default/nifi_docker_mynetwork)和DDEV Magento2项目的默认网络(ddev-ddev-magento2_default)相互隔离。Docker容器仅能在同一网络内直接通信,这就是导致连接被拒绝的核心原因。
解决方案
修改.ddev/docker-compose.nifi.yaml配置,将Nifi容器加入DDEV项目的专属网络:
version: '3' services: nifi: image: apache/nifi:latest container_name: ddev-${DDEV_SITENAME}-nifi ports: # HTTP - "8080:8080" # HTTPS - "8443:8443" volumes: # - ./nifi/database_repository:/opt/nifi/nifi-current/database_repository # - ./nifi/flowfile_repository:/opt/nifi/nifi-current/flowfile_repository # - ./nifi/content_repository:/opt/nifi/nifi-current/content_repository # - ./nifi/provenance_repository:/opt/nifi/nifi-current/provenance_repository # - ./nifi/state:/opt/nifi/nifi-current/state # - ./nifi/logs:/opt/nifi/nifi-current/logs # - ./nifi/conf/login-identity-providers.xml:/opt/nifi/nifi-current/conf/login-identity-providers.xml - ".:/mnt/ddev_config" # 新增网络配置,加入DDEV项目网络 networks: - default - ddev-${DDEV_SITENAME}_default # 声明外部网络(DDEV项目已创建的网络) networks: ddev-${DDEV_SITENAME}_default: external: true
访问方式调整
配置完成后,重启DDEV环境:
ddev restart
在Nifi中发送POST请求时,无需使用容器IP,直接通过以下两种方式访问Magento2:
- 使用Web容器名称:
http://ddev-ddev-magento2-web(内部端口为80,无需指定外部端口) - 使用DDEV内部域名:
http://ddev-magento2.ddev.site(替换为你的实际项目站点名)
验证方法
进入Nifi容器测试网络连通性:
ddev exec nifi ping ddev-ddev-magento2-web
如果能正常收到响应,说明网络已打通,此时再测试POST请求即可正常访问Magento2模块。
内容的提问来源于stack exchange,提问作者kekw
相关产品推荐
相关产品推荐

