Мой поток сейчас такой:
Nginx (Proxy) -> Apache -> PHP
Мне нужно как-то сделать страну происхождения доступной для php.
Самый беспроблемный способ был бы, если бы браузеры достоверно сообщали страну пользователя. Кто-нибудь знает, так ли это?
Кроме того, что-то вроде MaxMind GeoIP также будет работать, однако я не могу заставить его стать узким местом.
Я мог бы установить плагин nginx geoip или плагин apache geoip ... Но меня беспокоит стабильность. Если этот плагин падает, кажется, он может полностью убить nginx или apache соответственно.
Я думаю, что лучшим способом было бы подключить php к внешнему процессу, используя тайм-аут менее секунды, чтобы не блокировать процесс, если geo-ip-lookups не работает .... Но опять же здесь я не уверен, насколько эффективно использовать PHP для доступа к другому процессу или как лучше всего его использовать.
Мне нужно обрабатывать 10 таких поисков в секунду ...
Мне представляется, что наиболее масштабируемый способ - загрузить базу данных geoip в mysql, который достаточно надежен, чтобы меня не беспокоило, что он станет недоступным и разрушит весь сайт ... Хотя Предполагается, что формат geoip MaxMind, который читается их кодом c, вероятно, более эффективен, чем этот метод.