docker - Traefik 背后的 Apache Nifi 作为反向代理
问题描述
我使用 Traefik 作为许多服务和 tls 终止的反向代理。这可以正常工作,但 Nifi 除外。尝试将传入请求转发给 Nifi 时,我收到“错误网关”响应。有人知道如何解决这个问题吗?
非常感谢 :-)
traefik:
image: "traefik:v2.2"
container_name: "traefik"
restart: always
networks:
- monitoring
- website
- iot
command:
#- "--log.level=DEBUG"
- "--api.insecure=true"
- "--providers.docker=true"
- "--providers.docker.exposedbydefault=false"
- "--entrypoints.web.address=:80"
- "--entrypoints.websecure.address=:443"
- "--certificatesresolvers.myresolver.acme.httpchallenge=true"
- "--certificatesresolvers.myresolver.acme.httpchallenge.entrypoint=web"
#s- "--certificatesresolvers.myresolver.acme.caserver=https://acme-staging-v02.api.letsencrypt.org/directory"
- "--certificatesresolvers.myresolver.acme.email=test@test.de"
- "--certificatesresolvers.myresolver.acme.storage=/letsencrypt/acme.json"
# prom metrics
- "--metrics.prometheus=true"
---
nifi:
image: apache/nifi:latest
container_name: nifi
restart: on-failure
environment:
- NIFI_WEB_PROXY_CONTEXT_PATH=/
- NIFI_WEB_HTTP_PORT= 8080
expose:
- 8080
networks:
- iot
labels:
- "traefik.enable=true"
- "traefik.http.routers.nifi.rule=Host(`nifi.example.de`)"
- "traefik.http.routers.nifi.entrypoints=web"
- "traefik.http.routers.nifi.middlewares=nifi-auth"
# Basic Auth
- "traefik.http.middlewares.nifi-auth.basicauth.users=admin:$$xyz$$xyz$$xyz"
任何想法??:-)
解决方案
由于为 ui 等打开了几个端口,因此需要使用(例如)定义路由端口:
- "traefik.http.services.nifi.loadbalancer.server.port=8080"
推荐阅读
- linux - 控制台上的 SSH 谷歌云权限被拒绝(公钥)与 google-cloud-sdk 文件错误
- sql - 加入 ID 和 TIMESTAMP 列时,为什么我会在 LEFT JOIN 中获得额外的行?
- c# - 带有正斜杠的 Json 字段名称
- r - 如何在rgl中绘制到整个窗口?
- kotlin - 我可以将具有反射值的对象变量设置为另一个对象的属性吗?
- html - How can I set the widths of html table columns without individual styling of cells?
- arrays - Can't use string as an ARRAY ref while strict refs in use
- google-apps-script - 如何正确调试部署在谷歌脚本中的 WebApp?
- excel - Is there a way to select a Table without a direct reference to its name?
- greenplum - 如何使用 Greenplum 中的字符串函数将 UTF8 转换为字符串