nginx proxy_pass到localhost

时间:2013-09-08 21:52:33

标签: nginx localhost proxypass

我正在尝试在nginx中使用proxy_pass将请求转发到localhost上的另一个端口,如下所示:

location /foo {
    rewrite ^/foo/(.*) /$1 break;
    proxy_pass http://127.0.0.1:8080/;
}
location /bar {
    rewrite ^/bar/(.*) /$1 break;
    proxy_pass http://localhost:8080/;
}
location /blah {
    rewrite ^/blah/(.*) /$1 break;
    proxy_pass http://192.168.77.56:8080/;
}

所以只有最后一个有效。前两个给我一个页面不可用的错误。 我知道端点正在工作,因为我可以直接访问localhost:8080并查看我期望的输出。

知道我做错了吗?

[编辑]:进一步的启示......似乎改写行与它有关。像我这样使用它似乎可以在非本地主机IP上工作,即它从路径中删除/删除并保留其余部分,因为它将其发送到最终目的地。如果我删除了重写行,我可以代理到localhost(当然会丢失我在网址上缩进的其他内容)。

1 个答案:

答案 0 :(得分:2)

这有效:

location /blah {
    rewrite ^/blah/(.*) /$1 break;
    proxy_pass http://$server_addr:8080;
}