Nginx https rewrite turns POST to GET
It's not Nginx, it's your browser.
Note from RFC2616:
RFC 1945 and RFC 2068 specify that the client is not allowed to change the method on the redirected request. However, most existing user agent implementations treat 302 as if it were a 303 response, performing a GET on the Location [..]
This is true for all popular browsers and there is nothing you can do about it.
POST /api/brand was being turned into
GET /api/brand because the web application I was using (
flask-restful) was making an "invalid" request. If I used
POST /api/brand/ (notice the trailing
/), it was successful.