我有一个运行 Apache 2.4.25 (Debian) PHP 7.3.5 的 Docker 服务器。此容器“托管”在 Amazon Elastic Container Service 中。默认 AWS EC2 位于 AWS 应用程序负载均衡器后面。
我希望能够在 PHP 中获取用户/客户端 IP 地址。
基于我有限的知识,我的假设是这个 IP 地址需要从 ALB 传递到 EC2,然后传递到 Docker 容器,最后由 Apache 获取。
我试图通过尝试在本地计算机上运行的 Docker 容器中获取 IP 来缩短堆栈,但是我仍然无法找到 Docker 获取 IP 并将其传递给 Apache 的方法。
我通常知道您会从 ALB 获得 X-Forwarded 标头,但我无法弄清楚 Docker 如何将其传递给 Apache。
我希望客户端 IP 位于$_SERVER['REMOTE_ADDR']
or中$_SERVER['X_FORWARDED']
。
在 AWS 托管的 Docker 容器
$_SERVER['REMOTE_ADDR']
中包含 VPC 子网中的 IP
$_SERVER['X_FORWARDED']
不存在