AWS-ELB -> GEOIP -> MAXMIND -> Laravel



试图在我们的网站上以正确的语言为来自多个国家的人们提供服务。我们在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 的内容都是私有地址。

相关内容

  • 没有找到相关文章

最新更新