Use nginx to call shell script - simplest way?

agentzh agentzh at gmail.com
Tue Mar 8 15:19:41 MSK 2011


On Tue, Mar 8, 2011 at 8:07 PM, John Moore <grails at jmsd.co.uk> wrote:
> I have a Java web application which, once in a while for reasons I am trying
> to determine, sometimes becomes unresponsive. I want to give users a simple
> way of restarting it, via the web, so as I've used ngix a lot in the past,
> my first thoughts turned to having nginx running on another port, with a URL
> available which causes a shell script to be run. What would be the easiest,
> most lightweight, way to do this? Or is there some other way of effecting
> what I want which I haven't thought of yet?
>

Using ngx_lua [1]:

    location /restart-java-app {
          content_by_lua 'os.execute("/bin/restart-my-java-app")';
    }

But it's blocking, only suitable for personal use ;)

IIRC, Marcus Clyne was working on ngx_shell or something like that?
Which can give you shell access based on asynchronous threads that
will not block the whole nginx worker process :)

BTW, it's recommended to use the ngx_openresty bundle rather than
compile the module yourself: https://github.com/agentzh/ngx_openresty

Cheers,
-agentzh

[1] ngx_lua: http://github.com/chaoslawful/lua-nginx-module



More information about the nginx mailing list