listen on IPs but do not fail if one is absent - ?

lejeczek peljasz at yahoo.co.uk
Wed Aug 3 08:50:10 UTC 2022



On 13/02/2022 11:24, Francis Daly wrote:
> On Sun, Feb 13, 2022 at 07:56:16AM +0000, lejeczek via nginx wrote:
>> On 12/02/2022 13:26, Francis Daly wrote:
>>> On Sat, Feb 12, 2022 at 10:11:25AM +0000, lejeczek via nginx wrote:
> Hi there,
>
>>>> having multiple 'listen' with IPs or, just one 'listen' with a hostname
>>>> which resolves to more than one IP - is it possible to tell Nginx not fail
>>>> when one of IPs is absent, does not exist?
>>> I think that stock nginx does not support that.
>>>
>>> There are possibly ways to avoid the failure; but they all fundamentally
>>> are different ways to do "only bind to locally-existing addresses".
>> I can confess I return to Nginx after long many years of a divorce and this
>> curious fact - if Nginx cannot do that - will be a surprise to me.
> Use cases tend to be addressed when a developer has the incentive to
> write the code.
>
> If the feature that you are hoping for, has not been implemented in a
> way that you are hoping for, then probably no-one cared enough to ensure
> that it was done in that way.
>
Which amazes me a bit - I'd think that in this age of 
clouds/virtualization/containers etc. removing iface or IP 
or both(even hot-plugin hardware) is something what must 
happen often, if not daily - why people would not need that 
'feature' and not think it's silly of Nginx to fail for that 
reason? - amazes me.

Certainly this use case where IP does not exists - perhaps 
different case would be where IP does exist but cannot be 
bound to - should be allowed & easy to give to end users an 
option to "bind" to such non-existent IP with 
'continue/remain/insist' or however devel want to call.

I read people replies and think they thought it was about 
'port' in my case, but I tried to make it clear it's the 
IP/iface - so "*" does not address the issue I described.

many thanks, L.
>> I thought such a "feature" would be in Nginx by now, if not devised by
>> developers than included by popular demand - looking at the options/params
>> to 'listen', something like 'remain' or 'insist' which would instruct Nginx
>> to start & continue to work and hook onto the IP when/after it appeared(but
>> also continue to work after IP disappeared)
> As Maxim indicates in the parallel reply: nginx will not fail if it does
> not try to bind() to a non-existing address:port.
>
> And you can arrange that, by making sure that your "listen ip:port"
> directive does not include any of the parameters that require a bind();
> and by making sure that, for each port that you listen on, there is also a
> "listen *:port"-equivalent directive somewhere in the config.
>
> So possibly the feature that you want already exists with restrictions
> that you are happy to work within?
>
> Cheers,
>
> 	f



More information about the nginx mailing list