You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@nifi.apache.org by "Dirk Hennig (Jira)" <ji...@apache.org> on 2025/07/16 09:17:00 UTC
[jira] [Created] (NIFI-14754) nifi-api ignores nifi.web.proxy.host for PUT and OPTIONS requests
Dirk Hennig created NIFI-14754:
----------------------------------
Summary: nifi-api ignores nifi.web.proxy.host for PUT and OPTIONS requests
Key: NIFI-14754
URL: https://issues.apache.org/jira/browse/NIFI-14754
Project: Apache NiFi
Issue Type: Bug
Components: NiFi API
Affects Versions: 2.4.0
Reporter: Dirk Hennig
I try to install NiFi 2.4 behind an inbound frontend loadbalancer/proxy (haproxy) with its own DNS name for the NiFi secured cluster eg. cluster.external.domain port 8443
The nifi nodes in the backend have their internal hostnames eg. node1.internal.domain on port 8443
The haproxy has the configuration (shortened):
frontend dmaas-drcc-http
bind *:8443 ssl crt /etc/haproxy/ssl/cluster.external.domain.pem
acl dns_drccrat hdr(host) -m beg nifi-p-drcc-rat.bdps.vodafone.com
acl path_nifi path -i -m beg /nifi
use_backend nifi_drccrat_backend if dns_drccrat path_nifi
backend nifi_drccrat_backend
http-response set-header X-ProxyScheme: "https"
http-response set-header X-ProxyHost: cluster.external.domain
http-response set-header X-ProxyPort: 8443
http-response set-header X-ProxyContextPath: /nifi
server node1.internal.domain node1.internal.domain:8443/nifi check ssl verify none cookie 111...
server node2.internal.domain node2.internal.domain:8443/nifi check ssl verify none cookie 222...
server node3.internal.domain node3.internal.domain:8443/nifi check ssl verify none cookie 333...
The NiFi nodes hostnames are configured in nifi.properties as following:
nifi.web.https.host=node1.internal.domain
nifi.web.https.port=8443
nifi.web.proxy.context.path=/nifi
nifi.web.proxy.host=cluster.external.domain:8443, node1.internal.domain:8443
I can login to the nifi cluster and browse the canvas and settings as all http GET URLs which are send to the browser are generated with the correct external dns name cluster.external.domain:8443
But there are some exceptions, URLs which are generated as PUT or OPTIONS methods, have the wrong hostname and port. They just have the node1.internal.domain and the default https port. For this reasons this requests cannot reach the backend because they try to bypass the haproxy with the wrong port
Example:
The request to modify policies https:/cluster.external.domain port:8443/nifi-api/flow/about returns
{"about":\{"title":"NiFi","version":"2.4.0","uri":"https://node1.internal.domain:443/nifi-api/","contentViewerUrl":"node1.internal.domain:443/nifi/#/content-viewer","timezone":"CEST","buildTag":"rel/nifi-2.4.0"}}
But it should return
{"about":\{"title":"NiFi","version":"2.4.0","uri":"https://cluster.external.domain:8443/nifi-api/","contentViewerUrl":"cluster.external.domain:8443/nifi/#/content-viewer","timezone":"CEST","buildTag":"rel/nifi-2.4.0"}}
All subsequend nifi-api URLs are then generated by the GUI with the wrong internal hostname and will fail.
In NiFi 1.x this setup was working fine, in NiFi 2.x this stopped working.
I am stuck now with the deployment. Please can you assist here?
Many thanks in advance
--
This message was sent by Atlassian Jira
(v8.20.10#820010)