404 Method not allowed for DELETE as reverse proxy
Maxim Dounin
mdounin at mdounin.ru
Fri May 25 11:09:20 UTC 2018
Hello!
On Fri, May 25, 2018 at 05:27:24AM -0400, ConnorMcLaud wrote:
> Hi, I use nginx as reverse proxy to my Flask web server and have following
> problem:
> after I changed proxy pass to variable DELETE requests started to return 405
> Method not allowed (while POST works fine)
>
>
> location /client_data {
> resolver 127.0.0.11 valid=60s;
> resolver_timeout 5s;
> set $upstream_client_data web:5000;
> proxy_pass http://$upstream_client_data/client_data;
With this config, all requests to "/client_data<anything>" will be
routed to "http://web:5000/client_data" URI.
When using variables in the proxy_pass, you are expected to
specify _full_ URI. Using an URI component to replace a part of
the URI matched by location prefix, won't work. See details in
the proxy_pass directive description,
http://nginx.org/r/proxy_pass.
> }
>
>
> However, everything works fine with
>
> location /client_data {
> resolver 127.0.0.11 valid=60s;
> resolver_timeout 5s;
> proxy_pass http://web:5000/client_data;
And this config is quite different. With this config, requests to
"/client_data<something>" will be routed to
"http://web:5000/client_data<something>".
In both cases, "/client_data" part in the proxy_pass directive
looks unneeded. That is, use
proxy_pass http://web:5000;
instead. And with variables equivalent construction would be
set $upstream_client_data web:5000;
proxy_pass http://$upstream_client_data;
Note no URI compontent in proxy_pass in both cases.
--
Maxim Dounin
http://mdounin.ru/
More information about the nginx
mailing list