nginx proxy_pass 到本地主机

标签 nginx localhost 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/;
}

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

知道我做错了什么吗?

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

最佳答案

这有效:

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

关于nginx proxy_pass 到本地主机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18688999/

相关文章:

html - nginx 自定义错误页面 css 不适用

tomcat - 具有反向代理的 NGINX 多服务器 block

performance - HTTP Basic Auth、读取密码文件和性能

apache - HBase master 无法启动,无法连接到 hbase.rootdir

docker nginx代理nginx connect()失败(111 : Connection refused) while connecting to upstream

Apache proxypass 不允许 HTTP_POST

django - 我到底如何使用 nginx 和 Gunicorn 为 Django 应用程序提供静态文件服务器?

android - 在 Android 中获取 "SocketException : Connection reset by peer"

php - 序号 372 找不到动态链接库

nginx proxy_pass url 与有条件的 GET 参数