Масштабирование сайта для одинаково быстрой работы по всему миру

Наш сайт растет, и мы получаем все больше и больше клиентов по всему миру. Мы используем Nginx, PHP и MySQL. Наши серверы находятся в Великобритании, поэтому в Европе это быстро, но чем дальше мы отдаляемся от серверов, тем медленнее становится сайт. (С этого момента называй меня капитаном).

Так что я ищу способы исправить это. Мы получили стандартную структуру:

        [web-servers for dynamic content]           [CloudFlare CDN]
                       |                                    |
               [database-servers]             [web-servers for static content]

Поэтому мы кешируем наш статический контент и задаемся вопросом, как быстро доставить остальную часть сайта по всему миру.

Я думал о 2 основных решениях:

  1. имея одинаковую инфраструктуру в нескольких разных географических точках и используя некоторую форму гео-локации DNS:

    [Country-1]            [Country-2]            [Country-3]
         |                      |                      |       
    [web-servers]         [web-servers]          [web-servers]
         \                      |                      /
                \               |                 /
                           [DATABASES]
    

Теперь проблема, которую я вижу здесь, как поддерживать репликацию MySQL по всему миру? Я полагаю, что репликация мастер-мастер из Сингапура в Лондон не всегда будет актуальной, и задержка, конечно, вызовет проблемы для применения.

  1. Использование обратных прокси с приватными линиями

    [Country-1]            [Country-2]            [Country-3]
         |                      |                      |       
    [Reverse Proxy]      [Reverse Proxy]         [Reverse Proxy]
         \                      |                      /
                \               |                 /
                           [web-server]
                                |
                           [DATABASES]
    

Здесь я думал о том, чтобы иметь как частные линии из каждой страны, так и использовать обратные прокси-серверы для создания своего рода сети автомагистралей к нашим серверам, хотя это уже больше похоже на научную фантастику:)

Во всяком случае, я ищу какие-то ресурсы или советы о том, как другие это сделать.

0 ответов

Другие вопросы по тегам