Fire and forget requests
Richard.Kearsley at m247.com
Tue Aug 30 21:57:40 UTC 2011
I don't believe nginx can do this since I think it'stoo linear in the way it processes the request
The way I would approach this is by using the httpd built into C# - HttpListener
Once you receive the initial request you can send 200 immediately then spawn a new thread with the request to your backend using HttpWebRequest
Just some ideas... this is potentially very easy using C# - and I'm sure in quite a few other lanquages/scripts too
From: nginx-bounces at nginx.org [mailto:nginx-bounces at nginx.org] On Behalf Of Guy Knights
Sent: 30 August 2011 22:35
To: nginx at nginx.org
Subject: Fire and forget requests
We have a very specific use case and are trying to find a solution for it. We started looking at nginx as a possibility for handling this use case as we already use nginx for some of our other webserver duties. I've done some testing and investigation but it doesn't seem like we can use nginx to do what we want. However I thought I'd check with the community before dismissing it completely.
What we want is a fire and forget solution for request handling, where we can set up nginx to receive a request from our web servers, pass this request on to an external HTTP service or an HTTP backend and send a 200 response back straight away to the requesting machine, leaving the original request to be handled at whatever speed the backend is capable of. We don't care about the response from the backend server; this can simply be dropped once it's received.
Is something like the above possible? I did some testing by setting nginx up as a load balancer, pointing at a backend web server, and using the "return" directive before the proxy_pass directive but the return directive simply stops further execution of the request.
Any advice would be welcome.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the nginx