Gre*_*reg 5 localhost nginx proxypass
我正在尝试在 nginx 中使用 proxy_pass 将请求转发到本地主机上的另一个端口,如下所示:
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/;
}
Run Code Online (Sandbox Code Playgroud)
所以只有最后一个有效。前两个给我一个页面不可用错误。我知道端点正在工作,因为我可以直接转到 localhost:8080 并查看我预期的输出。
知道我做错了什么吗?
[编辑]:进一步的启示......似乎重写行与它有关。像我在这里一样使用它似乎适用于非本地主机 IP,即它从路径中删除 /blah 并在将其发送到最终目的地时保留其余部分。如果我删除重写行,我可以代理到本地主机(当然会丢失我在 url 上缩进的其他内容)。
这有效:
location /blah {
rewrite ^/blah/(.*) /$1 break;
proxy_pass http://$server_addr:8080;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4538 次 |
| 最近记录: |