Affects Version/s: 1.2.0, 1.1.1, 1.0.1
Fix Version/s: None
When clustered, each node calculates two pairs of hosts and ports:
1) The cluster socket address and cluster socket port
(nifi.cluster.node.address and nifi.cluster.node.protocol.port) which
are used for the clustering protocol
2) The node API address and node API port which is the web
address/port to use when web-requests are being replicated across the
In a secure cluster, each node would have nifi.web.https.host specified in order match the hostname in the certificate being used, but in an unsecure cluster nifi.web.http.host could be left blank.
When nifi.web.http.host, Jetty will bind to all available network interfaces, but the node will calculate its API address as localhost because it does have any other information to use. This will cause a node to try and replicate a request to another node using a localhost address which obviously won't work.
We should provide an additional, optional property like nifi.cluster.preferred.web.api.host which would be used to determine the web API hostname to report when unsecured, and when no http host is provided.