In the elasticsearch version 8.12 docs says "network.host default value is localhost and http.host value defaults is address given by network.host". But for default in fresh new elasticsearch http.host is equal 0.0.0.0 without comment. Is it mistake in docs or in the default config?
Ok this is kind of confusing indeed.
http.host is not set in
elasticsearch.yml then it does indeed fall back to
network.host is also not set in
elasticsearch.yml then the default behaviour is indeed to bind only to localhost.
However, if you start up a node for the first time with a completely unchanged
elasticsearch.yml then security auto-configuration will add various options to your
http.host: 0.0.0.0, so that you can later enroll other nodes in this cluster. If you remove the
http.host: 0.0.0.0 line from the file then it will go back to just using localhost.
Yeah, if I remove http.host from the config, then in the
_cluster/settings?include_defaults http.host will indeed inherit the value of network.host. Would it be a best practice to just remove http.host or change it to _local_, if I am planning a single-node configuration?
Technically the docs here recommend just to set
network.host: 127.0.0.1 and no other network settings, but I'm not sure it makes any difference in practice in almost all cases.
I opened Security auto-config overrides default `http.host` by DaveCTurner · Pull Request #105377 · elastic/elasticsearch · GitHub to improve the docs in this area.