docker中的Apache nifi:无法访问nifi UI

问题描述 投票:0回答:1

我为 apache nifi 1.22.0 创建了一个 docker 镜像,在 dockerfile 中公开了端口:

EXPOSE 8080 8443 10000 8000

然后我启动一个 docker 容器:

docker run -it --cpus=4 --user root --memory=10g --publish 8080:8080 \
--hostname nifi-0 --network my-net \
....some volumes...
apache-nifi:1.22.0

容器启动成功,但无法访问UI。我尝试了所有可能的 URL,但没有任何效果:

localhost:8080/nifi
nifi-0:8080/nifi
localhost:8000/nifi
nifi-0:8000/nifi

查看控制台日志,我观察到这一点:

NIFI_WEB_PROXY_HOST was not set but NiFi is configured to run in a secure mode. The NiFi UI may be inaccessible if using port mapping or connecting through a proxy.

这就是我无法访问nifi UI的原因吗?如果是,我该如何设置NIFI_WEB_PROXY_HOST?

编辑:

我将其添加到我的 docker run 命令中,现在我可以访问 localhost:8080/nifi 上的 UI。

-e NIFI_WEB_HTTP_PORT='8080'

虽然当我检查 docker 内的 nifi.properties 时,我看到了这个:

....
nifi.web.http.host=nifi-0
nifi.web.http.port=8080
nifi.web.http.network.interface.default=

#############################################

nifi.web.https.host=
nifi.web.https.port=
nifi.web.https.network.interface.default=
nifi.web.https.application.protocols=http/1.1
nifi.web.jetty.working.directory=./work/jetty
nifi.web.jetty.threads=200
nifi.web.max.header.size=16 KB
nifi.web.proxy.context.path=
nifi.web.proxy.host=
.....

nifi.web.http.host现在是nifi-0,nifi.web.http.port是8080。早些时候,这两个地方都是空的。另外,nifi.web.proxy.host 仍然是空的。

不知何故,所有这些结合得很好,使其对我有用。

'nifi-0:8080/nifi' 不起作用。

docker apache-nifi
1个回答
0
投票

如果您尝试访问在本地主机上运行的服务,只需将

nifi.web.http.host
属性设置为
0.0.0.0
localhost
而不是
nifi-0

重新启动你的docker并测试

curl http://localhost:8080/nifi

这是在安全模式下运行 NiFi 的 docker-compose.yml 示例:

version: "3.9"

services:
   
   nifi:
     image:  apache/nifi:1.22.0
     hostname: nifi
     container_name: nifi
     restart: on-failure 
     environment: 
       - NIFI_WEB_HTTPS_PORT=9443
       - SINGLE_USER_CREDENTIALS_USERNAME=admin 
       - SINGLE_USER_CREDENTIALS_PASSWORD=ctsBtRBKHRAx69EqUghvvgEvjnaLjFEB 
       - NIFI_HOME=/opt/nifi/nifi-current
       - NIFI_LOG_DIR=/opt/nifi/nifi-current/logs
       - NIFI_TOOLKIT_HOME=/opt/nifi/nifi-toolkit-current
       - NIFI_PID_DIR=/opt/nifi/nifi-current/run
       - NIFI_BASE_DIR=/opt/nifi
     ports:
       - '9443:9443'
     healthcheck:
       test: ["CMD", "curl", "-f", "https://localhost:9443/health"]
       interval: '30s'
       timeout: '20s'
       retries: 3  
       start_period: '5s'
     volumes:
       - data:/var/data
       - nifi:/opt/nifi
      

volumes:
  data:
  nifi:
© www.soinside.com 2019 - 2024. All rights reserved.