如果apache module安装后,您将获得国家/地区代码:
$_SERVER['GEOIP_COUNTRY_CODE']
与 PHP module/library ,您使用:
geoip_country_code_by_name($_SERVER['REMOTE_ADDR'])
这两种解决方案之间有什么区别(性能等...)? 哪一个是最好的 ?出于什么需要?
我认为 apache 模块会为每个请求在内存中加载扩展,这可能会影响性能。 (或者您必须使用 GeoIPEnable Off/On
设置规则,但这并不总是那么容易......)
那么如果您只在某些页面上需要geoip,那么使用PHP模块是否会提高性能?
最佳答案
它们的性能大致相当。我们也很好奇,所以我们在 Digital Ocean VM 上和本地 vagrant 上做了一些测试。结果是相同的:使用 Apache 扩展、PHP 扩展或 PHP 库都提供了出色的结果。没有真正的成功与根本不进行 GeoIP 比较。
您可以使用 .htaccess 在目录或文件的基础上在 Apache 中禁用 GeoIP ,所以如果您想在某些区域禁用它,您也可以在那里这样做。
我们已经在博客中介绍了我们的测试,并详细介绍了如何重现:GeoIP Performance Examined
关于php - 将 geoip 安装为 PHP 模块与安装为 apache2 模块之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38490041/