# HTTP enabled is false for non data nodes?

**URL:** <https://discuss.elastic.co/t/http-enabled-is-false-for-non-data-nodes/2831>\
**Category:** Elasticsearch\
**Created:** [February 25, 2010, 10:36pm UTC](https://discuss.elastic.co/t/http-enabled-is-false-for-non-data-nodes/2831 "2010-02-25T22:36:06Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![Lukas\_Vlcek1](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/lukas_vlcek1/32/819_2.png) [@Lukas\_Vlcek1](https://discuss.elastic.co/u/Lukas_Vlcek1)\
**Post date:** [February 25, 2010, 10:36pm UTC](https://discuss.elastic.co/t/http-enabled-is-false-for-non-data-nodes/2831/1 "2010-02-25T22:36:06Z")

</div>

Hi,

May be it is because it is almost midnight for me but I am not getting this:  
[http://www.elasticsearch.com/docs/elasticsearch/modules/http/#Settings](http://www.elasticsearch.com/docs/elasticsearch/modules/http/#Settings)

It reads:  
"The http module can be completely disabled and not started using by setting  
http.enabled to false. This make sense when creating non data  
nodes[http://www.elasticsearch.com/docs/elasticsearch/modules/node/data\_node](http://www.elasticsearch.com/docs/elasticsearch/modules/node/data_node)which  
accept  
HTTP requests, and communicate with data nodes using the internal  
transport[http://www.elasticsearch.com/docs/elasticsearch/modules/transport](http://www.elasticsearch.com/docs/elasticsearch/modules/transport)  
."

OK, HTTP module is NOT enabled. This is good practice for data nodes. But  
the second sentence makes me puzzled. So the point is that it makes sense  
for data nodes to have HTTP disabled because non data nodes (which receive  
HTTP requests) can talk to them via transport (Netty as of now). Correct? Or  
is there any other message? (It is probably just wording and me not being a  
native speaker but the way how the second sentence begins "This make  
sense..." seems to be referring to http.enabled = false in the first  
sentence.)

Regards,  
Lukas

---

<div class="post-metadata">

**Author:** ![kimchy](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/kimchy/32/44952_2.png) [@kimchy](https://discuss.elastic.co/u/kimchy)\
**Post date:** [February 25, 2010, 10:41pm UTC](https://discuss.elastic.co/t/http-enabled-is-false-for-non-data-nodes/2831/2 "2010-02-25T22:41:40Z")

</div>

Hi,

Yea, its a bit misleading. The "HTTP hit" happens once, when a node  
receives an http request, and that request needs to be redirected, or  
distributed to other nodes, it will use the transport layer (tcp/netty) to  
do that.

What I was trying to example is that you can create very simple load  
balancers by simply firing up elasticsearch nodes that are configured to  
hold no data. And, if all HTTP traffic will go to the elasticsearch load  
balancers, then you there is no need to enable HTTP on the rest of the nodes  
that hold the data.

-shay.banon

On Fri, Feb 26, 2010 at 12:36 AM, Lukáš Vlček [lukas.vlcek@gmail.com](mailto:lukas.vlcek@gmail.com) wrote:

> Hi,
> 
> May be it is because it is almost midnight for me but I am not getting  
> this:  
> [http://www.elasticsearch.com/docs/elasticsearch/modules/http/#Settings](http://www.elasticsearch.com/docs/elasticsearch/modules/http/#Settings)
> 
> It reads:  
> "The http module can be completely disabled and not started using by  
> setting http.enabled to false. This make sense when creating non data  
> nodes[http://www.elasticsearch.com/docs/elasticsearch/modules/node/data\_node](http://www.elasticsearch.com/docs/elasticsearch/modules/node/data_node)which accept  
> HTTP requests, and communicate with data nodes using the internal  
> transport[http://www.elasticsearch.com/docs/elasticsearch/modules/transport](http://www.elasticsearch.com/docs/elasticsearch/modules/transport)  
> ."
> 
> OK, HTTP module is NOT enabled. This is good practice for data nodes. But  
> the second sentence makes me puzzled. So the point is that it makes sense  
> for data nodes to have HTTP disabled because non data nodes (which receive  
> HTTP requests) can talk to them via transport (Netty as of now). Correct? Or  
> is there any other message? (It is probably just wording and me not being a  
> native speaker but the way how the second sentence begins "This make  
> sense..." seems to be referring to http.enabled = false in the first  
> sentence.)
> 
> Regards,  
> Lukas

---

<div class="post-metadata">

**Author:** ![Lukas\_Vlcek1](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/lukas_vlcek1/32/819_2.png) [@Lukas\_Vlcek1](https://discuss.elastic.co/u/Lukas_Vlcek1)\
**Post date:** [February 25, 2010, 10:50pm UTC](https://discuss.elastic.co/t/http-enabled-is-false-for-non-data-nodes/2831/3 "2010-02-25T22:50:17Z")

</div>

That is what is explained also here:  
[http://www.elasticsearch.com/docs/elasticsearch/modules/node/data\_node/](http://www.elasticsearch.com/docs/elasticsearch/modules/node/data_node/)  
I was just confused by the wording...

On Thu, Feb 25, 2010 at 11:41 PM, Shay Banon  
[shay.banon@elasticsearch.com](mailto:shay.banon@elasticsearch.com)wrote:

> Hi,
> 
> Yea, its a bit misleading. The "HTTP hit" happens once, when a node  
> receives an http request, and that request needs to be redirected, or  
> distributed to other nodes, it will use the transport layer (tcp/netty) to  
> do that.
> 
> What I was trying to example is that you can create very simple load  
> balancers by simply firing up elasticsearch nodes that are configured to  
> hold no data. And, if all HTTP traffic will go to the elasticsearch load  
> balancers, then you there is no need to enable HTTP on the rest of the nodes  
> that hold the data.
> 
> -shay.banon
> 
> On Fri, Feb 26, 2010 at 12:36 AM, Lukáš Vlček [lukas.vlcek@gmail.com](mailto:lukas.vlcek@gmail.com)wrote:
> 
> > Hi,
> > 
> > May be it is because it is almost midnight for me but I am not getting  
> > this:  
> > [http://www.elasticsearch.com/docs/elasticsearch/modules/http/#Settings](http://www.elasticsearch.com/docs/elasticsearch/modules/http/#Settings)
> > 
> > It reads:  
> > "The http module can be completely disabled and not started using by  
> > setting http.enabled to false. This make sense when creating non data  
> > nodes[http://www.elasticsearch.com/docs/elasticsearch/modules/node/data\_node](http://www.elasticsearch.com/docs/elasticsearch/modules/node/data_node)which accept  
> > HTTP requests, and communicate with data nodes using the internal  
> > transport[http://www.elasticsearch.com/docs/elasticsearch/modules/transport](http://www.elasticsearch.com/docs/elasticsearch/modules/transport)  
> > ."
> > 
> > OK, HTTP module is NOT enabled. This is good practice for data nodes. But  
> > the second sentence makes me puzzled. So the point is that it makes sense  
> > for data nodes to have HTTP disabled because non data nodes (which receive  
> > HTTP requests) can talk to them via transport (Netty as of now). Correct? Or  
> > is there any other message? (It is probably just wording and me not being a  
> > native speaker but the way how the second sentence begins "This make  
> > sense..." seems to be referring to http.enabled = false in the first  
> > sentence.)
> > 
> > Regards,  
> > Lukas

---

<div class="post-metadata">

**Author:** ![Lukas\_Vlcek1](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/lukas_vlcek1/32/819_2.png) [@Lukas\_Vlcek1](https://discuss.elastic.co/u/Lukas_Vlcek1)\
**Post date:** [February 25, 2010, 11:34pm UTC](https://discuss.elastic.co/t/http-enabled-is-false-for-non-data-nodes/2831/4 "2010-02-25T23:34:10Z")

</div>

Hi,

I am looking into the code and I see that for both transport and discovery  
modules there are also local counterparts of netty and jgroups  
implementations respectively. What are they used for? (Are they used  
internally on a data node when that node is running also HTTP module and  
Discovery module?)

Regards,  
Lukas

On Thu, Feb 25, 2010 at 11:50 PM, Lukáš Vlček [lukas.vlcek@gmail.com](mailto:lukas.vlcek@gmail.com) wrote:

> That is what is explained also here:  
> [http://www.elasticsearch.com/docs/elasticsearch/modules/node/data\_node/](http://www.elasticsearch.com/docs/elasticsearch/modules/node/data_node/)  
> I was just confused by the wording...
> 
> On Thu, Feb 25, 2010 at 11:41 PM, Shay Banon \<[shay.banon@elasticsearch.com](mailto:shay.banon@elasticsearch.com)
> 
> > wrote:
> 
> > Hi,
> > 
> > Yea, its a bit misleading. The "HTTP hit" happens once, when a node  
> > receives an http request, and that request needs to be redirected, or  
> > distributed to other nodes, it will use the transport layer (tcp/netty) to  
> > do that.
> > 
> > What I was trying to example is that you can create very simple load  
> > balancers by simply firing up elasticsearch nodes that are configured to  
> > hold no data. And, if all HTTP traffic will go to the elasticsearch load  
> > balancers, then you there is no need to enable HTTP on the rest of the nodes  
> > that hold the data.
> > 
> > -shay.banon
> > 
> > On Fri, Feb 26, 2010 at 12:36 AM, Lukáš Vlček [lukas.vlcek@gmail.com](mailto:lukas.vlcek@gmail.com)wrote:
> > 
> > > Hi,
> > > 
> > > May be it is because it is almost midnight for me but I am not getting  
> > > this:  
> > > [http://www.elasticsearch.com/docs/elasticsearch/modules/http/#Settings](http://www.elasticsearch.com/docs/elasticsearch/modules/http/#Settings)
> > > 
> > > It reads:  
> > > "The http module can be completely disabled and not started using by  
> > > setting http.enabled to false. This make sense when creating non data  
> > > nodes[http://www.elasticsearch.com/docs/elasticsearch/modules/node/data\_node](http://www.elasticsearch.com/docs/elasticsearch/modules/node/data_node)which accept  
> > > HTTP requests, and communicate with data nodes using the internal  
> > > transport[http://www.elasticsearch.com/docs/elasticsearch/modules/transport](http://www.elasticsearch.com/docs/elasticsearch/modules/transport)  
> > > ."
> > > 
> > > OK, HTTP module is NOT enabled. This is good practice for data nodes. But  
> > > the second sentence makes me puzzled. So the point is that it makes sense  
> > > for data nodes to have HTTP disabled because non data nodes (which receive  
> > > HTTP requests) can talk to them via transport (Netty as of now). Correct? Or  
> > > is there any other message? (It is probably just wording and me not being a  
> > > native speaker but the way how the second sentence begins "This make  
> > > sense..." seems to be referring to http.enabled = false in the first  
> > > sentence.)
> > > 
> > > Regards,  
> > > Lukas

---

<div class="post-metadata">

**Author:** ![kimchy](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/kimchy/32/44952_2.png) [@kimchy](https://discuss.elastic.co/u/kimchy)\
**Post date:** [February 26, 2010, 1:33am UTC](https://discuss.elastic.co/t/http-enabled-is-false-for-non-data-nodes/2831/5 "2010-02-26T01:33:20Z")

</div>

They are part of the upcoming 0.5 full support for Java APIs. Part of the  
story when working with Java is starting elasticsearch in disconnected  
embedded mode. This comes very handy for writing tests. The local discovery  
and local transport support that (an entire Server can be started with  
node.local set to true and all things that can be local will be, in our  
case, discovery and transport).

The local implementations are JVM level (well, actually class loader level),  
which means that if you start two nodes in the same JVM they will discovery  
each other. This again can come very handy when testing.

-shay.banon

On Fri, Feb 26, 2010 at 1:34 AM, Lukáš Vlček [lukas.vlcek@gmail.com](mailto:lukas.vlcek@gmail.com) wrote:

> Hi,
> 
> I am looking into the code and I see that for both transport and discovery  
> modules there are also local counterparts of netty and jgroups  
> implementations respectively. What are they used for? (Are they used  
> internally on a data node when that node is running also HTTP module and  
> Discovery module?)
> 
> Regards,  
> Lukas
> 
> On Thu, Feb 25, 2010 at 11:50 PM, Lukáš Vlček [lukas.vlcek@gmail.com](mailto:lukas.vlcek@gmail.com)wrote:
> 
> > That is what is explained also here:  
> > [http://www.elasticsearch.com/docs/elasticsearch/modules/node/data\_node/](http://www.elasticsearch.com/docs/elasticsearch/modules/node/data_node/)  
> > I was just confused by the wording...
> > 
> > On Thu, Feb 25, 2010 at 11:41 PM, Shay Banon \<  
> > [shay.banon@elasticsearch.com](mailto:shay.banon@elasticsearch.com)\> wrote:
> > 
> > > Hi,
> > > 
> > > Yea, its a bit misleading. The "HTTP hit" happens once, when a node  
> > > receives an http request, and that request needs to be redirected, or  
> > > distributed to other nodes, it will use the transport layer (tcp/netty) to  
> > > do that.
> > > 
> > > What I was trying to example is that you can create very simple load  
> > > balancers by simply firing up elasticsearch nodes that are configured to  
> > > hold no data. And, if all HTTP traffic will go to the elasticsearch load  
> > > balancers, then you there is no need to enable HTTP on the rest of the nodes  
> > > that hold the data.
> > > 
> > > -shay.banon
> > > 
> > > On Fri, Feb 26, 2010 at 12:36 AM, Lukáš Vlček [lukas.vlcek@gmail.com](mailto:lukas.vlcek@gmail.com)wrote:
> > > 
> > > > Hi,
> > > > 
> > > > May be it is because it is almost midnight for me but I am not getting  
> > > > this:  
> > > > [http://www.elasticsearch.com/docs/elasticsearch/modules/http/#Settings](http://www.elasticsearch.com/docs/elasticsearch/modules/http/#Settings)
> > > > 
> > > > It reads:  
> > > > "The http module can be completely disabled and not started using by  
> > > > setting http.enabled to false. This make sense when creating non data  
> > > > nodes[http://www.elasticsearch.com/docs/elasticsearch/modules/node/data\_node](http://www.elasticsearch.com/docs/elasticsearch/modules/node/data_node)which accept  
> > > > HTTP requests, and communicate with data nodes using the internal  
> > > > transport[http://www.elasticsearch.com/docs/elasticsearch/modules/transport](http://www.elasticsearch.com/docs/elasticsearch/modules/transport)  
> > > > ."
> > > > 
> > > > OK, HTTP module is NOT enabled. This is good practice for data nodes.  
> > > > But the second sentence makes me puzzled. So the point is that it makes  
> > > > sense for data nodes to have HTTP disabled because non data nodes (which  
> > > > receive HTTP requests) can talk to them via transport (Netty as of now).  
> > > > Correct? Or is there any other message? (It is probably just wording and me  
> > > > not being a native speaker but the way how the second sentence begins "This  
> > > > make sense..." seems to be referring to http.enabled = false in the first  
> > > > sentence.)
> > > > 
> > > > Regards,  
> > > > Lukas

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [July 6, 2017, 4:25am UTC](https://discuss.elastic.co/t/http-enabled-is-false-for-non-data-nodes/2831/6 "2017-07-06T04:25:32Z")

</div>


