安装geoip作为PHP模块VS作为apache2模块之间的差异

时间:2016-07-20 20:14:24

标签: php apache2 geoip maxmind

如果安装了apache module,您将获得国家/地区代码:

$_SERVER['GEOIP_COUNTRY_CODE']

使用PHP module/library,您可以使用:

geoip_country_code_by_name($_SERVER['REMOTE_ADDR'])

这两种解决方案之间的区别(性能等)是什么? 哪一个是最好的 ?需要哪些?

我认为apache模块在内存中为每个请求加载了扩展,这可能对性能不利。 (或者您必须使用GeoIPEnable Off/On设置规则,但这并不总是很容易......) 因此,如果您只需要在某些页面上进行geoip,那么使用PHP模块的性能是否更好?

1 个答案:

答案 0 :(得分:2)

它们在性能上大致相当。我们也很好奇,所以我们在数字海洋虚拟机和本地流浪者上进行了一些测试。结果是相同的:使用Apache扩展,PHP扩展或PHP库都提供了出色的结果。没有真正的打击与完全不做GeoIP。

您可以使用.htaccess在目录或文件的基础上在Apache中禁用GeoIP,因此如果您想在某些区域禁用它,您也可以在那里自由禁用。

我们发布了有关我们测试的博客,详细介绍了如何重现:GeoIP Performance Examined