現在、私のフローは次のようになっています。
Nginx (Proxy) -> Apache -> PHP
どういうわけか元の国をphpで利用できるようにする必要があります。
最も問題のない方法は、ブラウザーがユーザーの国を確実に報告することです。これが事実であるかどうか誰かが知っていますか?
さらに、MaxMind GeoIP のようなものも機能しますが、ボトルネックになることはできません。
nginx geoip プラグインまたは apache geoip プラグインをインストールできますが、ここでの懸念は安定性です。このプラグインがクラッシュすると、それぞれ nginx または apache を完全に殺す可能性があるようです。
geo-ip-lookupsが機能していない場合にプロセスをブロックしないように、1秒未満のタイムアウトを使用してphpを外部プロセスに接続するのが最善の方法だと思います....しかし、ここでも、私はPHP を別のプロセスに到達させることがどれほど効率的か、または到達させるための最良の方法がわかりません。
これらのルックアップを毎秒 10 回処理できる必要があります...
私にとって最もスケーラブルな方法は、geoip データベースを mysql にロードすることであると思われます。これは十分に信頼できるので、それが利用できなくなり、サイト全体がダウンすることについて過度に心配する必要はありません....私の推測ではC コードによって読み取られる MaxMind geoip 形式は、この方法よりも効率的である可能性があります。