proxy_bind with hostname from /etc/hosts possible?

larsg nginx-forum at forum.nginx.org
Mon Mar 13 14:38:12 UTC 2017


Hi!

is it possible to use an hostname from local /etc/hosts as proxy_bind
value?
In our current

Background:
We use nginx 1.8.1 as reverse proxy.
In order to overcome the "Overcoming Ephemeral Port Exhaustion" problem
(64k+ connections), we use proxy_bind to iterate over all loccally available
IP addresses and assign them as source IP (see
https://www.nginx.com/blog/overcoming-ephemeral-port-exhaustion-nginx-plus/)
In order to have an generic nginx configuration for all of our nginx
instances, we don't want to hard code server specific IPs in the nginx.conf
but use hostnames that are defined in the local /etc/hosts.

You can see our current configuration above.
Unfortunately nginx cannot resolve the hostname (localip0 etc.). There is an
error log "invalid local address "localip0"...).
We also tested the usage of upstream directive. Same result.
I'm worry that I only can use explicit IP addresses in this situation. Or do
you have an alternative solution?

/etc/host:
   192.168.1.130 localip0
   192.168.1.132 localip1
    ...

nginx.conf:

split_clients "${remote_addr}${remote_port}AAAA" $source_ip {
  10% localip0;
  10% localip1;
   ...
}

server {
  listen              443;
  proxy_bind          $source_ip;
  ...

Posted at Nginx Forum: https://forum.nginx.org/read.php?2,272918,272918#msg-272918



More information about the nginx mailing list