需要在 proxy_pass 中指定外部 ip 而不是 localhost/127.0.0.1 -如何解决这个问题?

需要在 proxy_pass 中指定外部 ip 而不是 localhost/127.0.0.1 -如何解决这个问题?

我有一个运行 Debian 10 和 nginx 的 Google Compute Engine 实例。使用 proxy_pass 将调用从前端传递到后端,我有

location /api/ {
  proxy_pass http://123.123.123.123:8080;
}

这有效。但我目前没有使用固定 IP,因此不想在这里硬编码外部 IP(123.123.123.123)。如果我将此 proxy_pass 声明中的外部 IP 替换为 localhost 或 127.0.0.1,它不起作用:浏览器在调用 /api/ 时收到 502 Bad Gateway。

我可以从控制台 ping localhost 和 127.0.0.1。

有趣的是,我在使用 mysql 时也遇到了同样的问题。我需要向后端应用程序提供服务器的外部 IP 地址,以便它能够访问 mysql。

我在这里做错了什么?

答案1

在这个具体案例中(GCP - Google Compute Engine VM),解决方案是使用(默认固定/永久的)内部 IP,而不是 localhost/127.0.0.1 或外部 IP。

相关内容