我正在使用云外壳在 Google 云服务上运行节点 JS 应用程序。我已经使用gcloud app deploy 进行了部署,一切都报告为成功。如果我使用gcloud app logs tail -s default我可以看到日志,它说我的应用程序正在侦听端口 3000,这是我从我的应用程序看到的第一条调试消息。
当我在没有端口的情况下调用端点时,即
https://myapp.appspot.com/myendpoint
我得到一个错误,
“获取 /myendpoint” 502
如果我尝试使用端口 3000,即
https://myapp.appspot.com:3000/myendpoint
请求只是超时,我没有从 shell 收到日志消息。
我在防火墙上打开了端口 3000,我的 app.yaml 是,
runtime: nodejs
env: flex
service: default
manual_scaling:
instances: 1
resources:
cpu: 1
memory_gb: 0.5
disk_size_gb: 10
更新 1:
我还尝试向我的 app.yaml 添加转发端口,
network:
forwarded_ports:
- 3000/tcp
并允许 VPC 防火墙中的端口 3000,但这似乎没有区别。
更新 2:
我可以通过 SSH 进入实例并使用wget http://127.0.0.1:3000/myendpoint命令访问端点,但仍然没有外部访问权限。
更新 3:
我也试过端口 443,监听 IP 0.0.0.0。但它似乎绑定到 IPV6 ip 地址 0 并将端口更改为 8443(以某种方式)。这简直是疯了...
我通过将我的服务绑定到端口 8080 并从我的 app.yaml 中删除“服务”字段来解决该问题。默认情况下,外部呼叫都路由到端口 8080。
外部呼叫没有指定端口。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句