Node.js - 在 Amazon EC2 上获取主机 IP 地址

Posted

技术标签:

【中文标题】Node.js - 在 Amazon EC2 上获取主机 IP 地址【英文标题】:Node.js - Getting the host IP address while on Amazon EC2 【发布时间】:2013-08-16 05:27:34 【问题描述】:

如何获取 Amazon EC2 上当前 Node.js 主机/服务器的 IP 地址(弹性 IP)?

调用 req.connection.address() 是没有用的,因为 EC2 使用弹性 IP。事实上,使用 ifconfig 命令显示的 IP 与用于从外部访问服务器的 IP 不同(这是我需要的)。如何自动获取弹性IP?

【问题讨论】:

【参考方案1】:

在实例内部,您可以通过向http://169.254.169.254 发送请求来查询有关该实例的元数据。

更多信息可以在这里找到:http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AESDG-chapter-instancedata.html

【讨论】:

【参考方案2】:

阅读有关标头和弹性 IP 的信息,我建议headers['REMOTE_ADDR'] 提供您正在寻找的地址(除非在负载平衡器后面)。

【讨论】:

【参考方案3】:

您可以使用 API 中的 DescribeInstances 根据 documentation 使用过滤器 ip-address 来获取您的实例的公共 IP。

【讨论】:

以上是关于Node.js - 在 Amazon EC2 上获取主机 IP 地址的主要内容,如果未能解决你的问题,请参考以下文章

Amazon EC2 上 Node.js 的 CPU 利用率

如何在 AWS Lambda 中使用 Node.js 列出我的所有 Amazon EC2 实例?

从 Amazon AWS EC2 服务器上的 Node.js 连接到 Redis 服务器时出错

如何使用 Amazon EC2 实例为生产设置 node.js process.env 变量?

使用NGINX在端口80上为使用虚拟主机的Amazon EC2上托管的域的node.js应用程序提供HTTP流量

将 Google 域链接到 Amazon ec2 服务器