【发布时间】:2019-08-21 15:22:05
【问题描述】:
我有一个 VPC,其中有两个公共子网。
- React(公共子网 1)
- 节点(公共子网 2)
在 React 方面,有一段代码在 fetch 的帮助下调用 Node API。
当我将 Nodejs 的公共 IP 传递到 fetch 的 url 时,就会发生通信,
如果我将公共 IP 更改为节点实例私有 IP,则不会发生通信。
我检查 curl 命令,即
curl http://NodeInstance public_ip:port/ -> return Response
curl http://NodeInstance private_ip:port/ -> return Response.
我不明白为什么私有 IP 不适用于来自 React 的 API 调用。我的 curl 命令工作正常。它返回来自公共和私有 IP 的响应。
非常感谢任何帮助。
I am using Single security group for both the instance i.e
Type | protocol | port range | source
All TCP TCP 0-65535 0.0.0.0/0
SSH TCP 22 0.0.0.0/0
All ICMP-IPV$ All N/A 0.0.0.0/0
【问题讨论】:
-
您的反应代码正在客户端的浏览器上运行,因此除非该浏览器碰巧有到您的 VPC 私有地址空间的路由,否则它将无法连接到私有 IP。
-
@ydaetskcoR 非常感谢您的回复。你能分享我如何实现这一目标。我的意思是每次使用公共 ip 调用后端服务器是不安全的
-
我在 VPC 上都有公共子网,并连接了 Internet 网关
-
为什么不安全? React 代码在您的用户浏览器中运行,如果它需要与另一台服务器通信,则需要通过公共 IP 地址进行。
-
但是为什么它需要公共 IP 如果它们都在同一个 VPC 中。例如,如果我们在家,那么我们的父母会用我们的昵称而不是正式名称来称呼我们。如果使用私有 IP 而不是公共 IP 进行通信,我们也将节省资金
标签: node.js reactjs amazon-web-services amazon-ec2