PAN*_*ack 5 docker docker-compose apache-nifi
我一生都无法访问 NiFi Web UI。这让我讨厌安全感。
太长了;我找不到在 docker 容器中启动 NiFi 并仍然访问 UI 的正确方法。这是我尝试过的(8小时):
docker run --name nifi \
-p 8080:8080 \
-d \
apache/nifi:latest
Run Code Online (Sandbox Code Playgroud)
我去localhost:8080/nifi
- 超时。同样的127.0.0.1
。
docker inspect nifi
- IP网关是172.20.0.1
具有实际IP的172.0.0.2
。Invalid Host Header
和超时。
开始随机尝试一些东西:
# I tried localhost, 0.0.0.0, various IP addresses
docker run --name nifi \
-p 8080:8080 \
-e NIFI_WEB_HTTP_HOST=${hostname-here}
-d \
apache/nifi:latest
Run Code Online (Sandbox Code Playgroud)
我还docker-compose.yml
为我的可能性递减建立了一个完整的堆栈。一切正常,除了:
nifi:
image: apache/nifi:latest
hostname: nifi
depends_on:
- zookeeper
- broker
- schema_registry
- nifi-registry
ports:
- "8080:8080"
Run Code Online (Sandbox Code Playgroud)
没有变化。你能帮助我吗?
更新1
我使用了docker-compose.yml
下面评论中链接的存储库中的文件;谢谢@Chaffelson。仍在处理超时问题localhost
。所以我用 docker-machine 旋转了一个液滴。
服务启动正常,日志表明 NiFi 注册表和 NiFi 的 Jetty 服务器均已启动。<host ip>:18080/nifi-registry
我可以像在本地计算机上一样访问 NiFi 注册表@ 。
我无法访问<host ip>8080/nifi
- 我收到invalid host header
回复。
所以我添加到docker-compose.yml
:
environment:
# Tried both with and without quotes
NIFI_WEB_HTTP_HOST: "<host-ip>"
Run Code Online (Sandbox Code Playgroud)
Jetty 服务器无法启动。洞察力?
更新2
从日志中,仅使用docker run --name nifi -p 8080:8080 -d apache/nifi:1.5.0
:
[NiFi Web Server-24] o.a.n.w.s.HostHeaderSanitizationCustomizer Request host header [45.55.36.15:8080] different from web hostname [348146fc286f(:8080)]. Overriding to [348146fc286f:8080/nifi]
45.55.36.15
主机ip在哪里。
这是我的问题的症结所在。
更新3
我ufw
在本地计算机上禁用了(防火墙)。我现在可以通过 访问 nifi localhost:8080
。实际访问远程主机没有任何进展(这就是这一切的重点)。
我使用这个文件和类似的 docker compose 文件来进行自动 NiFi Python 客户端测试。它表面上看起来与你的类似,并且在 Ubuntu (Travis-CI) 和我自己的本地 MacBook pro 上运行得非常好。
我建议您尝试将此文件作为已知良好的配置运行,并检查上述内容的“docker log -f nifi”,看看您的环境在启动时是否抛出错误。
NIFI_WEB_HTTP_HOST 和 NIFI_WEB_HTTP_PORT 的环境变量适用于您在 8080 以外的端口上访问 Docker nifi 时,这样您就不会受到主机标头拦截器的影响。我最近向该项目贡献了这些修改,因此,如果您遇到问题,我想知道,以便我可以修复它。
归档时间: |
|
查看次数: |
6056 次 |
最近记录: |