试图在我们的网站上以正确的语言为来自多个国家的人们提供服务。我们在Laravel中添加了GeoIP以及maxmind软件包。
无论我们尝试什么,每次都会收到错误 500 的问题:IP 地址"10.2.1.211"是保留的 IP 地址
我们首先尝试在 apache 中制作一个重定向X_FORWARDED_FOR
但它仍然不起作用。
有人可以帮助我们并告诉我们如何解决它吗?
我们的声明:AWS: Cloundfront, ELB, Ec2, Laravel 5.5, Maxmind (for GeoIP(
您似乎可以将 Cloudfront 配置为提供 http 标头CloudFront-Viewer-Country
,其中包含访问者的 ISO 国家/地区代码。这将比Maxmind更快,更简单。
例如 $visitorCountryCode = isset($_SERVER['CloudFront-Viewer-Country']) ? $_SERVER['CloudFront-Viewer-Country'] : '';
您的错误 500 是否仅在测试期间?如果使用直接连接到站点/内部网的设备进行测试,请尝试通过通过Internet服务提供商连接的浏览器进行访问("直接"或内部网连接很可能具有"保留"IP地址(。
您应该能够从变量X_FORWARDED_FOR获取流量的公共 IP 地址。
https://aws.amazon.com/premiumsupport/knowledge-center/log-client-ip-load-balancer-apache/
您应该从 Apache 打印出变量,看看是否可以正确接收该值。任何带有 10.x 的内容都是私有地址。