php - 将 geoip 安装为 PHP 模块与安装为 apache2 模块之间的区别

标签 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模块是否会提高性能?

最佳答案

它们的性能大致相当。我们也很好奇,所以我们在 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/

相关文章:

javascript - 在 Cloud9IDE 上用 PHP 创建新文件

PHP 动态页面 css 错误

Apache 2 上等效的 SSLRequireCipher

Python urllib.request 和 utf8 解码问题

android - 如何获取给定经纬度的状态(无 map 显示,需要存储)?

php - geoip-database[-extra] 与 geoip-database-contrib

PHP 头文件问题

php - 当我的服务器收到电子邮件时,我将如何运行 php 脚本

mono - 安装 mod_mono 可能会卸载 PHP Apache 模块。显然他们不能共存

php - 使用 GeoIP 数据库的最佳方式