简体   繁体   English

Amazon EC2 Web服务器在PHP中显示了不正确的客户端IP

[英]Amazon EC2 web server shows an incorrect client IP in PHP

I have one load balancer and three EC2 web servers with Linux and Apache. 我有一个负载平衡器和三个带有Linux和Apache的EC2 Web服务器。 Whenever I use $_SERVER['REMOTE_ADDR'] in PHP to take website's visitor's IP addresses, It shows me a wrong IP address. 每当我在PHP中使用$_SERVER['REMOTE_ADDR']来获取网站访问者的IP地址时,都会显示错误的IP地址。 When I check the IP in Whois databases then I will find its a reserved IP. 当我检查Whois数据库中的IP时,我会发现它是一个保留IP。 I guess its IP of another server in AWS itself instead of client's IP. 我猜想它在AWS本身中是另一台服务器的IP,而不是客户端的IP。 How Can I get correct client's IP with PHP in EC2 servers? 如何在EC2服务器中使用PHP获得正确的客户端IP?

The IP is a local Amazon IP because the visitors does not connect to your server directly. 该IP是本地Amazon IP,因为访问者不会直接连接到您的服务器。

Normally the Load balancer forwards the real client IP in the $_SERVER array under a new key, in most cases $_SERVER['HTTP_X_FORWARDED_FOR'] 通常,负载平衡器会使用新密钥(在大多数情况下$_SERVER['HTTP_X_FORWARDED_FOR']$_SERVER数组中转发实际客户端IP。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM