Масштабирование сайта для одинаково быстрой работы по всему миру
Наш сайт растет, и мы получаем все больше и больше клиентов по всему миру. Мы используем Nginx, PHP и MySQL. Наши серверы находятся в Великобритании, поэтому в Европе это быстро, но чем дальше мы отдаляемся от серверов, тем медленнее становится сайт. (С этого момента называй меня капитаном).
Так что я ищу способы исправить это. Мы получили стандартную структуру:
[web-servers for dynamic content] [CloudFlare CDN]
| |
[database-servers] [web-servers for static content]
Поэтому мы кешируем наш статический контент и задаемся вопросом, как быстро доставить остальную часть сайта по всему миру.
Я думал о 2 основных решениях:
имея одинаковую инфраструктуру в нескольких разных географических точках и используя некоторую форму гео-локации DNS:
[Country-1] [Country-2] [Country-3] | | | [web-servers] [web-servers] [web-servers] \ | / \ | / [DATABASES]
Теперь проблема, которую я вижу здесь, как поддерживать репликацию MySQL по всему миру? Я полагаю, что репликация мастер-мастер из Сингапура в Лондон не всегда будет актуальной, и задержка, конечно, вызовет проблемы для применения.
Использование обратных прокси с приватными линиями
[Country-1] [Country-2] [Country-3] | | | [Reverse Proxy] [Reverse Proxy] [Reverse Proxy] \ | / \ | / [web-server] | [DATABASES]
Здесь я думал о том, чтобы иметь как частные линии из каждой страны, так и использовать обратные прокси-серверы для создания своего рода сети автомагистралей к нашим серверам, хотя это уже больше похоже на научную фантастику:)
Во всяком случае, я ищу какие-то ресурсы или советы о том, как другие это сделать.