Мы - компания, у которой есть веб-сайт, который посещают ~ 800 тыс. Уникальных посетителей каждый месяц с постоянными темпами роста 35-40%. Мы только что перешли от одного сервера к выделенной базе данных mysql и клиентскому клиентскому серверу nginx +. Мы сталкиваемся со следующим узким местом после того, как на какое-то время все в порядке, и думаем о горизонтальном масштабировании путем добавления интерфейсного серверного решения с балансировкой нагрузки (мы измерили, что конец шрифта является узким местом). Файлы, очевидно, находятся на единственном сервере переднего плана, который у нас есть сейчас.
Каков наилучший вариант для синхронизации файлов сайта между 2 серверами переднего плана? Я немного погуглил, и кто-то порекомендовал "rsync". Единственная проблема, с которой я столкнулся, - это разрыв, который возникает, когда задание cron не запускалось какое-то время. Наш контент часто обновляется, и мы продвигаем его на первой странице. Другим решением, похоже, является NFS и подключение файлов ко второму серверу переднего плана. Есть проблемы с этим решением? Любые рекомендации приветствуются.
Мы запускаем общий веб-хост с реплицированной файловой системой AFS, и она работает для нас достаточно хорошо (для определенного определения «достаточно хорошо»). На что следует обратить внимание:
Запуск сервера сетевой файловой системы - нетривиальный объем системного администрирования, особенно если вы хотите сделать это хорошо (например, реплицируйте файловые серверы для обеспечения высокой доступности).
Вы теряете возможность выполнять определенные операции с файловой системой (например, детализированную блокировку и отслеживание inotify). Если у вас довольно обычный веб-сайт, это не проблема, это то, чего нужно остерегаться отсутствие inotify, для перезагрузки FastCGI приложений).
Если вы используете обработку сеансов на основе файлов, вам необходимо убедиться, что вы либо закрепили сеансы на одном сервере, либо убедитесь, что эти сеансы реплицируются. Это больше похоже на «теперь у меня несколько серверов переднего плана», чем на проблему с сетевой файловой системой.
Тщательно настройте параметры кеша. Они могут сделать или сломать ваше приложение.
Модель безопасности NFS очень глупая, поэтому вы, вероятно, захотите направить ее через безопасную внутреннюю сеть.
Очевидно, когда вы это делаете, сложность намного возрастает. Удачи.