On Wed, Sep 28, 2016 at 11:01:36AM +0000, Jens Dueholm Christensen wrote: Hi there,
> I've got an issue where nginx (see below for version/compile options) > returns a 405 (not allowed) to POST requests to clients when the upstream > proxy returns a 503. I don't see that, when I try to build a test system. Are you doing anything clever with error_page or anything like that? > My config is basicly this My config is exactly this: === http { server { listen 8080; location / { root /tmp; try_files /offline.html @xact; } location @xact { proxy_pass http://127.0.0.1:8082; } } server { listen 8082; return 503; } } === Do you see the problem when you test with that? (The file /tmp/offline.html does not exist.) If not, what part of your full config can you add to the 8080 server which causes the problem to appear? curl -i http://127.0.0.1:8080/x does a GET. curl -i -d k=v http://127.0.0.1:8080/x does a POST. (Use -v instead of -i for even more information.) > When the request method is a POST nginx transforms this to a 405 "not > allowed", which is - as far as I can understand from a number of posts > found googling - is to be expected when POSTing to a static resource. If you can build a repeatable test case -- either like the above, or perhaps configure a HAProxy instance that will return the 503 itself -- then it should be possible to see what is happening. > An individual backend instance can also return a 503 error if it > encounters a problem servicing a request. > > That 503 response is sent back to HAProxy, which parses it along to > nginx, which returns the 503 to the client (and it's NOT converted into > a 405!), so I know that nginx doesn't translate all 503s to 405s if it's > generated by a backend instance even if the request is POSTed. If you can see the bytes on the wire between HAProxy and nginx in both cases, the difference may be obvious. > This leads me to think that somehow HAProxy does not provide the > correct headers in the 503 errorpage to make nginx assume the response > from HAProxy isn't dynamic. I suspect that that is incorrect -- 503 is 503 -- but a config that allows the error be reproduced will be very helpful. Cheers, f -- Francis Daly fran...@daoine.org _______________________________________________ nginx mailing list nginx@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx