Reading request_body before passing to backend server

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

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

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:


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:,239091,239091#msg-239091

More information about the nginx mailing list