How to run a shell script on every request?

J Carter jordanc.carter at outlook.com
Sun Aug 27 07:01:30 UTC 2023


+1 on "why are you doing this?".

However, to answer the question - rather than spawning a new shell for every 
request, use a loop in your bash script that is driven by access log output.

For example.

tail -n0 -f /var/log/nginx/access.log | \
    while read; 
        do echo "one request";
    done;

You'll need to handle what happens when log rotation takes place.


On Fri, 18 Aug 2023 21:39:13 -0400
Jeff Dyke <jeff.dyke at gmail.com> wrote:

> Can you explain why?  I would never tie a script to a request.  I post
> process logs all of the time. If it needs to be in the application, don't
> force it into Nginx.
> 
> Strong statement, but would love to hear why?
> 
> On Fri, Aug 18, 2023 at 9:47 AM Kaushal Shriyan <kaushalshriyan at gmail.com>
> wrote:
> 
> > Hi,
> >
> > I am running nginx version: nginx/1.24.0  on CentOS Linux release 7.9.2009
> > (Core)
> >
> > # nginx -v
> > nginx version: nginx/1.24.0
> > # cat /etc/redhat-release
> > CentOS Linux release 7.9.2009 (Core)
> > #
> >
> > I want to run a shell script every time my nginx server receives any HTTP
> > request. Any simple ways to do this?
> >
> > Please guide me. Thanks in Advance.
> >
> > Best Regards,
> >
> > Kaushal
> >
> > _______________________________________________
> > nginx mailing list
> > nginx at nginx.org
> > https://mailman.nginx.org/mailman/listinfo/nginx
> >


More information about the nginx mailing list