2016-07-20 25 views
1

Wenn apache module installiert ist, können Sie Ländercode mit bekommen:Unterschied zwischen der Installation geoip als PHP-Modul VS als apache2 Modul

$_SERVER['GEOIP_COUNTRY_CODE'] 

Mit dem PHP module/library, verwenden Sie:

geoip_country_code_by_name($_SERVER['REMOTE_ADDR']) 

Was ist der Unterschied (Leistung etc ...) zwischen diesen 2 Lösungen? Welches ist das Beste? Für welche Bedürfnisse?

Ich denke, Apache-Modul geladen Erweiterung für jede Anforderung im Speicher, die schlecht für die Leistung sein könnte. (Oder Sie müssen Regeln mit GeoIPEnable Off/On setzen, aber das ist nicht immer einfach ...) Also, wenn Sie GeoIP nur auf einigen Seiten benötigen, ist es besser für die Leistung, PHP-Modul zu verwenden?

Antwort

1

Sie sind in etwa gleichwertig in der Leistung. Wir waren auch neugierig, also haben wir einige Tests sowohl auf Digital Ocean VMs als auch lokal mit Vagrant durchgeführt. Die Ergebnisse waren die gleichen: Die Verwendung der Apache-Erweiterung, der PHP-Erweiterung oder der PHP-Bibliothek lieferte fantastische Ergebnisse. Kein echter Erfolg, überhaupt GeoIP nicht zu tun.

Sie können GeoIP in Apache auf Verzeichnis- oder Dateibasis unter Verwendung von .htaccess deaktivieren. Wenn Sie es für einige Bereiche deaktivieren möchten, können Sie dies auch dort tun.

Wir haben über unsere Tests gebloggt, mit Details zur Reproduktion: GeoIP Performance Examined