![如何使用 PHP 正确返回 EC2 实例中的公共服务器地址](https://linux22.com/image/706849/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%20PHP%20%E6%AD%A3%E7%A1%AE%E8%BF%94%E5%9B%9E%20EC2%20%E5%AE%9E%E4%BE%8B%E4%B8%AD%E7%9A%84%E5%85%AC%E5%85%B1%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%9C%B0%E5%9D%80.png)
我是 AWS 新手...我已经设置了一个 EC2 实例,它运行 Nginx 和 PHP 7.1.6,我还制作了一个返回phpinfo();
详细信息的页面,但它返回的不是我的弹性 IP,而是内部 IP 地址:
$_SERVER['SERVER_ADDR'] 172.31.9.228
我的 EC2 已正确关联一个弹性 IP,并且尝试浏览网站,一切运行顺利。
有没有办法让 Nginx 返回公网 IP 而不是私网 IP?
答案1
EIP 未绑定到任何网络接口。
获取 EIP 的最简单方法是通过实例的元数据。
$eip = file_get_contents('http://169.254.169.254/latest/meta-data/public-ipv4');