proxy_next_upstream and POSTs

Jonathan Leibiusky ionathan at
Mon May 9 20:42:41 MSD 2011

Nginx is great and the way it handles upstream and failed server as well! I
would just like to avoid retrying request when they are POSTs, as POSTs are
no idempotent and my backend can't handle duplicated POSTs right now.
So I started to mess around with the code. What I have in mind is to create
a module that will change the behavior of proxy_next_upstream by just
checking that http method != POST.
I believe it supposed to be really simple.
So a couple of questions for those who are into nginx source code:
1. Is there any good article, blog post, etc, that explain how to create and
test a module?
2. Any good advice on how I should do it? I was thinking on adding the
validation somewhere in ngx_http_upstream_test_next (ngx_http_upstream.c),
something like:
if (r->method == NGX_HTTP_POST) {
  return NGX_DECLINED;

If this is OK, how could I do this from a module? So when someone compiles
nginx with this module, he'll have this behavior instead of the standard

Sorry if my questions are dumb.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the nginx mailing list