Today it took me over one hour to debug an error with Docker and Nginx.
Every time I tried to submit a form with a POST method, NGinx gave me a 405 error: “405 Not Allowed”.
I originally thought that Nginx overrode React Router settings and tried to troubleshoot my production NGinx config.
StackOverflow had some ideas: POST request not allowed - 405 Not Allowed - nginx, even with headers included.
Perhaps it was a problem with serving static content via POST from Nginx?
I knew that my request tried to hit a route to my Flask backend - nothing to do with static content. But it was worth a try.
So I experimented with proxying my routes.
I also tried looking at my Docker logs, but they only showed that I get the 405 error. Not helpful.
In the end, I just forgot to add a simple route to my default config.
server {
listen 80;
location /auth {
proxy_pass https://users:5000;
proxy_redirect default;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $server_name;
}
}