Nginx location - Distinguish requests by arguments or queries

stmx38 nginx-forum at forum.nginx.org
Tue Feb 25 12:05:05 UTC 2020


Hello,

We have a case when we should permit different methods on the same location
but different requests.

For location /test we should permit only POST, for /test?doc we should
permit only GET methods.

Our config example:
----
  location /test {
    error_page  403 =405 /custom-error;

    limit_except POST {
      deny all;
    }

    proxy_pass http://test/in;
  }
----

Map doesn't help us, it can't be used inside 'limit_except'. We also tried
to use 'if' to pass a request to named location using 'try_files' but it
also is not allowed inside 'if'.

Can't be used:
----
limit_except $method {
  deny all;
}

if ($request_uri ~ \?doc) {
  try_files @test-doc;
}
----

The question is, if there a way to implement this and how?

Thank you!

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



More information about the nginx mailing list