The port you are referring to, it is the HTTP port:
http.port
A bind port range. Defaults to 9200-9300
.
http.publish_port
The port that HTTP clients should use when communicating with this node. Useful when a cluster node is behind a
proxy or firewall and the http.port is not directly addressable from
the outside. Defaults to the actual port assigned via http.port.
http.bind_host
The host address to bind the HTTP service to. Defaults to http.host
(if set) or network.bind_host
.
http.publish_host
The host address to publish for HTTP clients to connect to. Defaults to http.host
(if set) or
network.publish_host
.
http.host
Used to set the http.bind_host
and the http.publish_host
Defaults to http.host
or network.host
.
So you really don't need a proxy, you can have elasticsearch listen directly on port 80.
If you already have a process running on port 80; then you can proxy the connections to 9200 (and leave elastic search as default).
Java Transport Client ---> Apache HTTP Proxy(80) ----> ES (9300) [ Can
I do this? As I understand that Java Transport Client uses a non-http
protocol? ]
The protocol has nothing to do with the port.
Simply pass 80
to InetSocketTransportAddress
. See the documentation for a complete example.