Phu-Thien Tran created NIFI-8619:
------------------------------------
Summary: Allow direct access to individual cluster nodes' UI
behind proxy and ensure writing & loading of valid flow.xml.gz
Key: NIFI-8619
URL: https://issues.apache.org/jira/browse/NIFI-8619
Project: Apache NiFi
Issue Type: Improvement
Components: Core Framework
Affects Versions: 1.13.3
Reporter: Phu-Thien Tran
Fix For: 1.13.3
Enable direct access to individual cluster nodes' UI when they are behind a
proxy. New property "nifi.web.context.root" is added to nifi.properties and is
set to be the web context root to which all NiFi webapps should be deployed.
For example, for a cluster with two nodes should have "nifi.web.context.root"
set to "/node1" for node 1 and "/node2" for node 2. Consequently, the URL to
the UI of node 1 and 2 are http://<hostname>:<port>/node1/nifi and
http://<hostname>:<port>/node2/nifi respectively, where hostname and port are
those of a proxy and the same for both nodes. And so are all NiFi framework
webapps and extension UIs, e.g. /node1/nifi-api, /node1/nifi-docs.
This functionality requires reverse proxy in Apache's mod_proxy config file.
Each node has a separate {{<Location>}} entry like this:
<Location "/node1/nifi">
RequestHeader add X-ProxyScheme "http"
RequestHeader add X-ProxyHost "proxy-host"
RequestHeader add X-ProxyPort "proxy-port"
ProxyPass http://node1-host[:port]/node1/nifi
ProxyPassReverse http://node1-host[:port]/node1/nifi
</Location>
<Location "/node1/nifi-api">
RequestHeader add X-ProxyScheme "http"
RequestHeader add X-ProxyHost "proxy-host"
RequestHeader add X-ProxyPort "proxy-port"
ProxyPass http://node1-host[:port]/node1/nifi-api
ProxyPassReverse http://node1-host[:port]/node1/nifi-api
</Location>
<Location "/node2/nifi">
RequestHeader add X-ProxyScheme "http"
RequestHeader add X-ProxyHost "proxy-host"
RequestHeader add X-ProxyPort "proxy-port"
ProxyPass http://node2-host[:port]/node2/nifi
ProxyPassReverse http://node2-host[:port]/node2/nifi
</Location>
<Location "/node2/nifi-api">
RequestHeader add X-ProxyScheme "http"
RequestHeader add X-ProxyHost "proxy-host"
RequestHeader add X-ProxyPort "proxy-port"
ProxyPass http://node2-host[:port]/node2/nifi-api
ProxyPassReverse http://node2-host[:port]/node2/nifi-api
</Location>
Where proxy-host and proxy-port are those of the proxy server.
In addition, this issue also looks at minor improvement in writing and reading
of flow.xml.gz to prevent it from being corrupt or invalid when running in a
cluster environment in version 1.11.4.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)