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)

Reply via email to