Forum: NGINX Posting after x-accel-redirect

Posted by amvtek (Guest)
on 2010-03-05 17:05
(Received via mailing list)
I am trying to address the following use case :
-----------------------------------------------------------------------
 * A 'post request' is send to Nginx which forward it to a first 
upstream server "upstream 1". "upstream 1" is in charge of 
authenticating the request origin, and do some accounting in order to 
determine if the request can be authorized ...
 * If OK, we would like to terminate processing the request at "upstream 
2"

What we have briefly tried :
----------------------------------------
 * internal redirect ( using x-accel-redirect) to "upstream 2"
 * how could we possibly "post" to this second "upstream 2" ?

Thank you for your help

Posted at Nginx Forum: 
http://forum.nginx.org/read.php?2,60373,60373#msg-60373
Posted by dobe (Guest)
on 2010-03-06 09:58
(Received via mailing list)
hi

use something like below to always have a GET request to your 
authentication upstream. then let the authentication upstream return an 
x-accell-redirect header. now if the original request was a post, it 
will still be a post after the call to the auth upstream. so you could 
do whatever you want with the authenticated request e.g. send it to 
another upstream

cheers, bernd



    # internal used for authentication
    location ^~ "/authenticate" {
        proxy_pass http://yourauthbackend;
        proxy_intercept_errors on;
        proxy_method GET;
        proxy_pass_request_body off;
        proxy_set_header  Content-Length  '0';
        rewrite /authenticate(.*) $1;
        internal;
        break;
    }


Posted at Nginx Forum: 
http://forum.nginx.org/read.php?2,60373,60657#msg-60657
Posted by amvtek (Guest)
on 2010-03-06 12:20
(Received via mailing list)
Nice.
However in the case we are chasing, /authenticate needs the body of the 
request as it has to verify a digital signature calculated on it.

Thank you for your insight anyway.
Best,
Marc

Posted at Nginx Forum: 
http://forum.nginx.org/read.php?2,60373,60684#msg-60684
Please log in before posting. Registration is free and takes only a minute.
Existing account (Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
No account? Register here.