Feature request: Run a script when upstream detected down/up
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