Docker部署Apache NiFi 1.13.0配置HTTPS出现连接器冲突错误如何解决
根因定位
你出现配置被覆盖、端口冲突的核心原因是docker-compose.yml的环境变量配置错误:
官方apache/nifi镜像的启动脚本会自动将所有NIFI_前缀的环境变量转换为nifi.properties的配置项,你在配置HTTPS端口时误用了HTTP端口的变量名NIFI_WEB_HTTP_PORT,导致每次容器重启都会强制给nifi.web.http.port赋值为9443,和HTTPS端口冲突。
修复步骤
1. 修正docker-compose.yml配置
首先将Web相关的环境变量替换为以下内容:
########## Web ########## # 完全注释HTTP相关环境变量,避免启动脚本自动填充默认值 # NIFI_WEB_HTTP_HOST: ${NIFI_HTTP_HOST} # NIFI_WEB_HTTP_PORT: ${NIFI_HTTP_PORT} # 正确配置HTTPS相关参数 NIFI_WEB_HTTPS_HOST: ${NIFI_HTTPS_HOST} NIFI_WEB_HTTPS_PORT: ${NIFI_HTTPS_PORT} # 新增TLS证书相关配置,对应tls-toolkit生成的参数 NIFI_SECURITY_KEYSTORE: ./conf/keystore.jks NIFI_SECURITY_KEYSTORE_TYPE: JKS NIFI_SECURITY_KEYSTORE_PASSWORD: 【填写tls-toolkit生成的keystore密码,可从localhost目录下的nifi.properties中查询】 NIFI_SECURITY_KEY_PASSWORD: 【填写tls-toolkit生成的私钥密码,同上】 NIFI_SECURITY_TRUSTSTORE: ./conf/truststore.jks NIFI_SECURITY_TRUSTSTORE_TYPE: JKS NIFI_SECURITY_TRUSTSTORE_PASSWORD: 【填写tls-toolkit生成的truststore密码,同上】 # 配置初始管理员,和你tls-toolkit的-C参数保持一致 NIFI_SECURITY_USER_AUTHORIZER: managed-authorizer NIFI_SECURITY_INITIAL_ADMIN_IDENTITY: CN=yangeok,OU=nifi
2. 重新生成证书配置
进入容器执行以下命令,清理旧的错误配置,重新生成TLS证书:
# 清理旧配置 cd $NIFI_HOME/conf && rm -rf localhost *.jks # 重新生成证书 cd /opt/nifi/nifi-toolkit-1.13.0/bin &&\ sh tls-toolkit.sh standalone \ -n 'localhost' \ -C 'CN=yangeok,OU=nifi' \ -O -o $NIFI_HOME/conf # 拷贝证书到conf根目录 cd $NIFI_HOME/conf && cp localhost/*.jks .
3. 重启容器生效
docker-compose down && docker-compose up -d
重启后容器只会启用HTTPS 9443端口,不会再出现端口冲突问题。
内容的提问来源于stack exchange,提问作者Yangwook Ian Jeong
相关产品推荐
相关产品推荐

