Лучшие практики для быстрого GeoTarget с использованием PHP / Apache / Ginx - PullRequest
0 голосов
/ 21 июня 2011

Мой поток сейчас такой:

Nginx (Proxy) -> Apache -> PHP

Мне нужно как-то сделать страну происхождения доступной для php.

Самый беспроблемный способ был бы, если бы браузеры достоверно сообщали страну пользователя. Кто-нибудь знает, так ли это?

Кроме того, что-то вроде MaxMind GeoIP также будет работать, однако я не могу заставить его стать узким местом.

Я мог бы установить плагин nginx geoip или плагин apache geoip ... Но меня беспокоит стабильность. Если этот плагин падает, кажется, он может полностью убить nginx или apache соответственно.

Я думаю, что лучшим способом было бы подключить php к внешнему процессу, используя тайм-аут менее секунды, чтобы не блокировать процесс, если geo-ip-lookups не работает .... Но опять же здесь я не уверен, насколько эффективно использовать PHP для доступа к другому процессу или как лучше всего его использовать.

Мне нужно обрабатывать 10 таких поисков в секунду ...

Мне представляется, что наиболее масштабируемый способ - загрузить базу данных geoip в mysql, который достаточно надежен, чтобы меня не беспокоило, что он станет недоступным и разрушит весь сайт ... Хотя Предполагается, что формат geoip MaxMind, который читается их кодом c, вероятно, более эффективен, чем этот метод.

1 Ответ

1 голос
/ 21 июня 2011

Плагин MaxMind для Apache довольно надежный, я запускаю его на серверах, которые обрабатывают десятки миллионов уникальных в день проблем. Это также довольно просто, что помогает. Создание дополнительной системы для поиска и возврата обратно выглядит как дополнительная сложность без пользы. Убедитесь, что вы получаете подписку на обновления БД с течением времени.

...