【问题标题】:AWS-ELB -> GEOIP -> MAXMIND -> LaravelAWS-ELB -> GEOIP -> MAXMIND -> Laravel
【发布时间】:2018-04-21 23:32:11
【问题描述】:

试图在我们的网站上为来自多个国家/地区的人们提供正确的语言。我们在 Laravel 和 maxmind 包中添加了 GeoIP。

无论我们尝试什么,每次都会遇到错误 500: IP 地址“10.2.1.211”是保留的 IP 地址

我们首先尝试在 apache 中进行重定向 X_FORWARDED_FOR,但它仍然无法正常工作。

有人可以帮助我们并告诉我们具体如何解决吗?

我们的环境: AWS:Cloundfront、ELB、Ec2、Laravel 5.5、Maxmind(用于 GeoIP)

【问题讨论】:

    标签: amazon-web-services laravel-5 amazon-ec2 amazon-elastic-beanstalk maxmind


    【解决方案1】:

    you can configure Cloudfront to provide an http header CloudFront-Viewer-Country 似乎将包含您的访问者的 ISO 国家/地区代码。这将比 Maxmind 更快、更简单地使用。

    例如$visitorCountryCode = isset($_SERVER['CloudFront-Viewer-Country']) ? $_SERVER['CloudFront-Viewer-Country'] : '';

    您的错误 500 仅在测试期间出现吗?如果使用直接连接到您的站点/Intranet 的设备进行测试,请尝试通过通过 Internet 服务提供商连接的浏览器进行访问(“直接”或 Intranet 连接很可能具有“保留”IP 地址)。

    【讨论】:

      【解决方案2】:

      您应该能够从 X_FORWARDED_FOR 变量中获取流量的公共 IP 地址。

      https://aws.amazon.com/premiumsupport/knowledge-center/log-client-ip-load-balancer-apache/

      您应该从 Apache 打印出该变量,看看您是否可以正确接收该值。任何带有 10.x 的东西都是私有地址。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-07-27
        • 1970-01-01
        • 2018-10-14
        • 2015-11-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多