【问题标题】:nginx proxy_pass to localhostnginx proxy_pass 到本地主机
【发布时间】:2013-09-12 09:31:43
【问题描述】:

我正在尝试在 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,即它从路径中删除 /blah 并在将其发送到最终目的地时保留其余部分。如果我删除重写行,我可以代理到 localhost(当然会丢失 url 上缩进的其他内容)。

【问题讨论】:

    标签: nginx localhost proxypass


    【解决方案1】:

    这行得通:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-25
      • 2018-10-30
      • 2020-07-24
      • 1970-01-01
      • 2019-01-22
      • 1970-01-01
      相关资源
      最近更新 更多