我的流程目前是这样的:
Nginx (Proxy) -> Apache -> PHP
我需要以某种方式使原始国家/地区可用于 php。
如果浏览器可靠地报告用户所在的国家/地区,则最无故障的方法是。有谁知道是否是这种情况?
除此之外,MaxMind GeoIP 之类的东西也可以工作,但我不能让它成为瓶颈。
我可以安装 nginx geoip 插件,或者 apache geoip 插件......但我关心的是稳定性。如果这个插件崩溃,它似乎可以分别完全杀死 nginx 或 apache。
我认为最好的方法是让 php 连接到外部进程,使用亚秒级超时,以免在 geo-ip-lookups 不起作用时阻止该进程....但是在这里,我'我不确定让 PHP 接触到另一个进程的效率如何,或者让它接触到的最佳方式。
我需要能够每秒处理 10 个这样的查找...
对我来说,最具可扩展性的方法似乎是将 geoip 数据库加载到 mysql 中,这足够可靠,我不会过分担心它变得不可用并用它击倒整个站点......虽然我的猜测是他们的 c 代码读取的 MaxMind geoip 格式可能比这种方法更有效。