proxy_next_upstream and POSTs

Jonathan Leibiusky ionathan at
Tue May 10 18:48:28 MSD 2011

Right, that is why after digging for a while I realized I wan't doing it the
right way.
Now I wrote a module that will hook into the upstream logic and will set all
the callbacks to the round-robin callbacks. Only the the callback
will call the original round-robin callback and after that will do something

if (r->method == NGX_HTTP_POST) {
  pc->retries = 0;

by setting retires = 0 I think nginx won't retry and will fail and I will be
using round-robin logic for all the rest.

My only problem is that in the callback I don't have access to the
request struct, so I don't know is the request's method. So now I am not
sure if the approach is the right one.

Any thoughts on this?

On Tue, May 10, 2011 at 11:32 AM, Piotr Sikora <piotr.sikora at>wrote:

> Hi,
>  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;
>> }
> Keep in mind that you should decline sending request to another backend,
> only if you already sent it upstream. There is a bunch of errors (bad
> gateway, connection timeout, etc) which could lead to the code path in
> question, for which you should still send request to another backend.
> Best regards,
> Piotr Sikora < piotr.sikora at >
> _______________________________________________
> nginx mailing list
> nginx at
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the nginx mailing list