无法访问计算引擎外部的 java 应用程序,但它在本地主机上的 运行

Cannot access java application outside compute engine but its running on localhost

我有一个 dropwizard 应用程序。还有一个 e2-small(2 个 vCPU,2 GB 内存)内存。 当我 运行 应用程序传递必要的属性时,它 运行 成功且没有错误。(问题末尾的日志片段)

我的应用程序在端口 8080 上 运行ning 并且从我的计算引擎控制台(在连接 SSH 之后)我这样做

curl http://0.0.0.0:8080

它return如我所料。 但我无法从外部访问此应用程序。 我有外部 IP(云 SQL 也需要它),所以我尝试以 http://externalip:8080 访问应用程序,但它对我 return 没有任何影响。此外,从计算引擎控制台(连接 SSH 后)卷曲 http://externalip:8080 不会 return 任何东西。

我在创建计算引擎实例时允许防火墙部分中的 http 和 https 流量。

我已经使用相同的外部 ip 设置了我的部署管道(使用第三方工具),它成功地将我的工件复制到我的计算引擎。 所以我确定外部IP已启用。

你能帮我理解可能是什么问题吗?

INFO [2020-11-18 15:32:09,981] org.eclipse.jetty.server.handler.ContextHandler: Started i.d.j.MutableServletContextHandler@4850a747{/,null,AVAILABLE} INFO [2020-11-18 15:32:09,995] org.eclipse.jetty.server.AbstractConnector: Started application@50a0404b{HTTP/1.1,[http/1.1]}{0.0.0.0:8080} INFO [2020-11-18 15:32:09,997] org.eclipse.jetty.server.AbstractConnector: Started application@e328d88{HTTP/1.1,[http/1.1]}{0.0.0.0:8443} INFO [2020-11-18 15:32:09,998] org.eclipse.jetty.server.AbstractConnector: Started admin@78ea668{HTTP/1.1,[http/1.1]}{0.0.0.0:8081} INFO [2020-11-18 15:32:09,999] org.eclipse.jetty.server.AbstractConnector: Started admin@10af6715{HTTP/1.1,[http/1.1]}{0.0.0.0:8444} INFO [2020-11-18 15:32:10,000] org.eclipse.jetty.server.Server: Started @9687ms 127.0.0.1 - - [18/Nov/2020:15:33:53 +0000] "GET / HTTP/1.1" 200 2314 "-" "curl/7.64.0" 54 127.0.0.1 - - [18/Nov/2020:15:34:13 +0000] "GET / HTTP/1.1" 200 2314 "-" "curl/7.64.0" 3

默认情况下,GCP 防火墙拒绝任何入口流量。 入口流量是源自网络外部并进入网络的流量 出于同样的原因,来自外部 VM 实例的任何 http 请求都会收到连接被拒绝的错误。

我关注了

  1. https://cloud.google.com/vpc/docs/using-vpc
  2. https://cloud.google.com/vpc/docs/using-firewalls

之后我们为我的项目添加了防火墙规则(你也可以将其设置为实例级别)并允许入口流量解决了我的问题