Feature request: Run a script when upstream detected down/up

Rt Ibmer rtibmx at yahoo.com
Tue Apr 29 05:19:42 MSD 2008

>> Except that Nginx is asynchronous, not threaded.  This means that when
>> your script is called, Nginx will now be delayed while the script is
>> launched (and what if the script fails?).  

>Nginx will just have to wait until fork returns.

I don't know much about this stuff, but isn't there a way to fork something as a background process? Something equivalent to me typing "./my_failover_script &" ?  So assuming nginx could simply make a shell system call or somehow make the call but tell it to run in the background, then I imagine the nginx thread that would call out to run the script would return almost immediately.  At any rate, even if it took a little time, this should be a rare event, like maybe once every few weeks if things are running smoothly.

And if it can't be launched as a background process, I would simply make the script it calls do something like flag another process to run, and then exit immediately so the thread returned quickly. The main thing is that I just need nginx to signal me somehow when it takes an upstream server out of rotation.  Doing this by sniffing the log file is a hack at best.

>For the OP, executing a script when a backend fails is trivial, it 
>should be possibile to do it just be adding a new module.

Yes I had a look at the tutorial on building modules. Unfortunately it is over my head. This is why I am hopeful that the developers will recognize the importance of such a "hook" to an external monitoring system would be very useful especially if it is straight-forward to do.  Thank you.

Be a better friend, newshound, and 
know-it-all with Yahoo! Mobile.  Try it now.  http://mobile.yahoo.com/;_ylt=Ahu06i62sR8HDtDypao8Wcj9tAcJ

More information about the nginx mailing list