nginx 'proxy_pass' cannot have URI part in location?

前端 未结 3 1268
清酒与你
清酒与你 2020-12-08 07:26

I have a location block as

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

but nginx complains that \"proxy_p

3条回答
  •  春和景丽
    2020-12-08 07:57

    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.

提交回复
热议问题