0

我的流程目前是这样的:

Nginx (Proxy) -> Apache -> PHP

我需要以某种方式使原始国家/地区可用于 php。

如果浏览器可靠地报告用户所在的国家/地区,则最无故障的方法是。有谁知道是否是这种情况?

除此之外,MaxMind GeoIP 之类的东西也可以工作,但我不能让它成为瓶颈。

我可以安装 nginx geoip 插件,或者 apache geoip 插件......但我关心的是稳定性。如果这个插件崩溃,它似乎可以分别完全杀死 nginx 或 apache。

我认为最好的方法是让 php 连接到外部进程,使用亚秒级超时,以免在 geo-ip-lookups 不起作用时阻止该进程....但是在这里,我'我不确定让 PHP 接触到另一个进程的效率如何,或者让它接触到的最佳方式。

我需要能够每秒处理 10 个这样的查找...

对我来说,最具可扩展性的方法似乎是将 geoip 数据库加载到 mysql 中,这足够可靠,我不会过分担心它变得不可用并用它击倒整个站点......虽然我的猜测是他们的 c 代码读取的 MaxMind geoip 格式可能比这种方法更有效。

4

1 回答 1

1

Apache 的 MaxMind 插件非常强大,我已经在每天处理 10 亿个唯一身份的服务器上运行它,没问题。这也很简单,这很有帮助。构建一些额外的系统来处理查找和返回似乎增加了复杂性而没有任何好处。确保您订阅了随着时间的推移对数据库的更新。

于 2011-06-21T19:11:37.113 回答