如果安装了apache module,您将获得国家/地区代码:
$_SERVER['GEOIP_COUNTRY_CODE']
使用PHP module/library,您可以使用:
geoip_country_code_by_name($_SERVER['REMOTE_ADDR'])
这两种解决方案之间的区别(性能等)是什么? 哪一个是最好的 ?需要哪些?
我认为apache模块在内存中为每个请求加载了扩展,这可能对性能不利。 (或者您必须使用GeoIPEnable Off/On
设置规则,但这并不总是很容易......)
因此,如果您只需要在某些页面上进行geoip,那么使用PHP模块的性能是否更好?
答案 0 :(得分:2)
它们在性能上大致相当。我们也很好奇,所以我们在数字海洋虚拟机和本地流浪者上进行了一些测试。结果是相同的:使用Apache扩展,PHP扩展或PHP库都提供了出色的结果。没有真正的打击与完全不做GeoIP。
您可以使用.htaccess在目录或文件的基础上在Apache中禁用GeoIP,因此如果您想在某些区域禁用它,您也可以在那里自由禁用。
我们发布了有关我们测试的博客,详细介绍了如何重现:GeoIP Performance Examined