Назад | Перейти на главную страницу

Пользователь загрузил изображения в настройках с несколькими веб-серверами

В настоящее время у меня есть популярный сайт объявлений, который работает на 2 серверах. В настоящее время существует 2 сервера, один веб-сервер и один сервер базы данных. Они работают под управлением Linux, а веб-сайт написан на месте и MySQL.

Я нахожусь в процессе обновления серверов, так как сайт перерастает существующую настройку сервера. Я купил еще один сервер, который будет действовать как другой веб-сервер, который подключен к существующим 2 серверам в частной сети. Итак, у меня было бы 2 сервера и один сервер базы данных.

На веб-сайте есть большое количество изображений, которые пользователи постоянно загружают и удаляют с веб-сайта. Первоначальная идея заключалась в том, чтобы два веб-сервера синхронизировали файлы, включая изображения. Но я думаю, что из-за большого количества изображений для синхронизации могут возникнуть проблемы с синхронизацией изображений не сразу.

Я просто пытаюсь найти лучшее и самое надежное решение этой проблемы, так как уверен, что это общая проблема, с которой сталкиваются многие растущие веб-сайты.

До сих пор у меня были следующие идеи:

1) синхронизировать оба веб-сервера. Может быть медленным и временами, когда изображения еще не доступны на обоих серверах. 2) смонтируйте каталог изображений, чтобы оба веб-сервера загружали в один и тот же каталог. Будет ли это медленная загрузка изображений? 3) измените php-скрипт загрузки фотографий для загрузки в корзину Amazon s3 и обслуживания изображений с помощью облачного фронта anmazon. Хотя я думаю, что это может быть дорого из-за большого количества изображений, которые сайт обслуживает каждый месяц.

Любые идеи или ссылки для дальнейшего чтения были бы замечательными.

Безусловно, самым простым, лучшим и определенно самым надежным решением будет использование варианта S3 - с облачным интерфейсом или без него.

Изображения обычно представляют собой статический контент, поэтому они очень хорошо кэшируются. Если в дизайне вашего решения можно использовать это, на самом деле не имеет значения, является ли фактическое постоянное хранилище медленным или дорогостоящим.

Либо ваши веб-серверы используют свой собственный кеш, либо используют внешний кеш, то есть сети доставки контента.

Для многих приложений (высокодоступный) файловый ресурс по-прежнему является очень подходящим и широко используемым решением для обмена контентом между серверами.

В качестве альтернативы вообще не храните файлы в файловой системе, а используйте базу данных и вместо этого храните их как BLOB. Очень распространенный подход. Поскольку вам в любом случае уже нужна база данных, и это делает серверы приложений практически не имеющими состояния, решает множество проблем блокировки, репликации, высокой доступности, согласованности и доступа, перемещая их на уровень базы данных, где многие из этих проблем являются старыми новостями, хорошо понятыми и решено.