nginx 'proxy_pass' cannot have URI part in location?

nginx

Solution

Technically just adding the URI should work, because it's documented here and it says that it should work, so

location @test{
    proxy_pass http://localhost:5000/1/; # with a trailing slash
}

Should have worked fine, but since you said it didn't I suggested the other way around, the trick is that instead of passing `/my/uri` to `localhost:5000/1`, we pass `/1/my/uri` to `localhost:5000`,

That's what my rewrite did

rewrite ^ /1$1

Meaning rewrite the whole URL, prepend it with `/1` then add the remaining, the whole block becomes

location @test{
    rewrite ^ /1$1;
    proxy_pass http://localhost:5000;
}

Note: @Fleshgrinder provided an answer explaining why the first method didn't work.

Problem

I have a `location` block as ``` location @test{ proxy_pass http://localhost:5000/1; } ``` but nginx complains that `"proxy_pass cannot have URI part in location given by regular expression..."` Does anyone know what might be wrong? I'm trying to query localhost:5000/1 when an upload is complete: ``` location /upload_attachment { upload_pass @test; upload_store /tmp; ... } ```

Original source