<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>question Nifi multi host docker containers using  Reverse Proxy with windows docker-desktop in Support Questions</title>
    <link>https://community.cloudera.com/t5/Support-Questions/Nifi-multi-host-docker-containers-using-Reverse-Proxy-with/m-p/391660#M247716</link>
    <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;I have been struggling for sometime now trying to figure out if Nifi cluster can be deployed using windows docker-desktop where each node lives on a different host. I managed to do it using Ubuntu system but since Ubuntu is not supported by our IT I'm trying to see if the same can be implemented in the windows env.&lt;/P&gt;&lt;P&gt;I knew there will be challenges with windows since it has some limitations specially to containers networking&amp;nbsp; over Unix. One of those limitations is that if you are trying to use host networking the IP address of the host doesnt bind to the container , instead it uses what is called a loop back. When I try to set the&amp;nbsp; nifi host property to the machine fqdn or ip I keep getting the error:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;java.net.BindException: Cannot assign requested address&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Which I imagine that is a result of the IP already being reserved to the host and not accessible to the container.&lt;/P&gt;&lt;P&gt;After doing some research to work around this problem, I came across Reverse Proxy. The idea is deploy Nifi on each host locally ( default bridge network) and all the communication with the user and other nodes are done through the Reverse Proxy (I used nginx) . It sounded simple at first but once I got in to it , it got very complex very quickly &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&lt;/P&gt;&lt;P&gt;I was able to get the RP working on a standalone instance , but once you start introducing cluster it gets very tricky with all the ports and the host naming. Actually Nifi documentation has some &lt;A href="https://docs.cloudera.com/cfm/2.0.1/nifi-admin-guide/topics/nifi-site-to-site-and-reverse-proxy-examples.html" target="_self"&gt;information&lt;/A&gt; regarding setting up a RP for remote (over the internet ) cluster which I got to admit it looked very intimidating specially around the dynamic routing config in the nifi.properties. None the less I tried to follow as much as I comprehend but is not for nifi nodes in&amp;nbsp; docker containers .&lt;/P&gt;&lt;P&gt;To Summarize, The problem is Nifi nodes internally needs to communicate with each other using different ports and passing each other host info specially that are set up in the&amp;nbsp; cluster host address (nifi.cluster.node.address)&amp;nbsp; and the load balancing host address (nifi.cluster.load.balance.host). I cant assign the host ip\fqdn because of the error above and I cant find a way to dynamically set those similar to how s2s hostname and port are set.&lt;/P&gt;&lt;P&gt;Any help or guidance&amp;nbsp; on this is highly appreciated.&lt;/P&gt;&lt;P&gt;Thanks for reading and sorry for the long post.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Mon, 12 Aug 2024 19:23:41 GMT</pubDate>
    <dc:creator>SAMSAL</dc:creator>
    <dc:date>2024-08-12T19:23:41Z</dc:date>
    <item>
      <title>Nifi multi host docker containers using  Reverse Proxy with windows docker-desktop</title>
      <link>https://community.cloudera.com/t5/Support-Questions/Nifi-multi-host-docker-containers-using-Reverse-Proxy-with/m-p/391660#M247716</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;I have been struggling for sometime now trying to figure out if Nifi cluster can be deployed using windows docker-desktop where each node lives on a different host. I managed to do it using Ubuntu system but since Ubuntu is not supported by our IT I'm trying to see if the same can be implemented in the windows env.&lt;/P&gt;&lt;P&gt;I knew there will be challenges with windows since it has some limitations specially to containers networking&amp;nbsp; over Unix. One of those limitations is that if you are trying to use host networking the IP address of the host doesnt bind to the container , instead it uses what is called a loop back. When I try to set the&amp;nbsp; nifi host property to the machine fqdn or ip I keep getting the error:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;java.net.BindException: Cannot assign requested address&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Which I imagine that is a result of the IP already being reserved to the host and not accessible to the container.&lt;/P&gt;&lt;P&gt;After doing some research to work around this problem, I came across Reverse Proxy. The idea is deploy Nifi on each host locally ( default bridge network) and all the communication with the user and other nodes are done through the Reverse Proxy (I used nginx) . It sounded simple at first but once I got in to it , it got very complex very quickly &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&lt;/P&gt;&lt;P&gt;I was able to get the RP working on a standalone instance , but once you start introducing cluster it gets very tricky with all the ports and the host naming. Actually Nifi documentation has some &lt;A href="https://docs.cloudera.com/cfm/2.0.1/nifi-admin-guide/topics/nifi-site-to-site-and-reverse-proxy-examples.html" target="_self"&gt;information&lt;/A&gt; regarding setting up a RP for remote (over the internet ) cluster which I got to admit it looked very intimidating specially around the dynamic routing config in the nifi.properties. None the less I tried to follow as much as I comprehend but is not for nifi nodes in&amp;nbsp; docker containers .&lt;/P&gt;&lt;P&gt;To Summarize, The problem is Nifi nodes internally needs to communicate with each other using different ports and passing each other host info specially that are set up in the&amp;nbsp; cluster host address (nifi.cluster.node.address)&amp;nbsp; and the load balancing host address (nifi.cluster.load.balance.host). I cant assign the host ip\fqdn because of the error above and I cant find a way to dynamically set those similar to how s2s hostname and port are set.&lt;/P&gt;&lt;P&gt;Any help or guidance&amp;nbsp; on this is highly appreciated.&lt;/P&gt;&lt;P&gt;Thanks for reading and sorry for the long post.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 12 Aug 2024 19:23:41 GMT</pubDate>
      <guid>https://community.cloudera.com/t5/Support-Questions/Nifi-multi-host-docker-containers-using-Reverse-Proxy-with/m-p/391660#M247716</guid>
      <dc:creator>SAMSAL</dc:creator>
      <dc:date>2024-08-12T19:23:41Z</dc:date>
    </item>
    <item>
      <title>Re: Nifi multi host docker containers using  Reverse Proxy with windows docker-desktop</title>
      <link>https://community.cloudera.com/t5/Support-Questions/Nifi-multi-host-docker-containers-using-Reverse-Proxy-with/m-p/391715#M247738</link>
      <description>&lt;P&gt;&lt;a href="https://community.cloudera.com/t5/user/viewprofilepage/user-id/38301"&gt;@mburgess&lt;/a&gt;&amp;nbsp;&lt;a href="https://community.cloudera.com/t5/user/viewprofilepage/user-id/35454"&gt;@MattWho&lt;/a&gt;&amp;nbsp;Hi! Do you have any insights here? Thanks.&lt;/P&gt;</description>
      <pubDate>Tue, 13 Aug 2024 22:15:15 GMT</pubDate>
      <guid>https://community.cloudera.com/t5/Support-Questions/Nifi-multi-host-docker-containers-using-Reverse-Proxy-with/m-p/391715#M247738</guid>
      <dc:creator>DianaTorres</dc:creator>
      <dc:date>2024-08-13T22:15:15Z</dc:date>
    </item>
  </channel>
</rss>

