Reading request_body before passing to backend server

dktp1 nginx-forum at nginx.us
Sun May 12 01:53:47 UTC 2013


I am trying to read if a specific value is set (passed) as a POST using
request_body. 

What I am trying to do is:

server {
..
if ($request_body ~ "API-value-Iwanttocheck") {
        set $my_api "TRUE";
}

And later on pass to the backend server:

location / {
        proxy_pass http://backend:80;
    }


However, that never seems to match. I even enabled logging and modified my
log_format to have:

"
"POSTREQUEST:$request_body"
"

And I can see in the log when I don't have the if statement. When I add the
if statement, it doesn't show up in the logs any more.

Anyone have any idea? Or a simple way to check if a value set via POST is
actually there?

Posted at Nginx Forum: http://forum.nginx.org/read.php?2,239091,239091#msg-239091



More information about the nginx mailing list