У меня есть несколько веб-серверов Linux, подключенных к балансировщику нагрузки, и я люблю обмениваться ресурсами (такими как изображения, видео и другие материалы) между этими серверами. Каков наилучший способ сделать это?
В настоящее время я подключил файловый сервер ко всем веб-серверам, но меня беспокоит то, что он будет работать из-за большого трафика. Как я могу избежать этого?
Заранее спасибо.
linux
web-server
file-sharing
getmizanur
источник
источник
Ответы:
Есть несколько способов сделать это в зависимости от ваших потребностей.
Первые два лучше, если у вас много новых файлов. Третье было бы идеальным решением, если вы не добавляете и не изменяете файлы, которые часто, так как пользователи получат 404-й статический контент, еще не синхронизированный.
Последний вариант может быть идеальным во многих отношениях, но также может оказаться самым дорогим из 4. Вам также придется переписать свои веб-сайты для поддержки этого.
источник
Другой отличный способ уменьшить нагрузку на веб-серверы и выполнить балансировку нагрузки - это использовать squid (а именно squid3). Установите его в качестве обратного прокси-сервера с кэшированием. Он будет кешировать статический контент, например изображения и т. Д., Либо на жесткий диск (по умолчанию), либо в ОЗУ (быстрее и лучше), если вы установите его таким образом. Он способен выполнять циклический перебор на другие серверы squid, даже если какой-то один узел перегружен.
источник
Поскольку обычно потребность в большем количестве серверов обусловлена ресурсами, необходимыми для запуска динамических веб-сайтов / приложений, рассмотрите возможность размещения статических ресурсов в другом поддомене / домене. (например, static.yourdomain.com)
Затем вы можете использовать другой сервер / серверы для их размещения. Хостинг статических файлов не требует много ресурсов, поэтому для статического контента вам потребуется значительно меньше серверов. Вы также освободите некоторые ресурсы на серверах для вашего динамического контента.
В зависимости от вашего балансировщика нагрузки вы также можете сделать это в том же домене с помощью балансировщика нагрузки, который решит, какой сервер использовать для какого запроса, но если вы используете отдельный домен, вы можете довольно просто поместить свои статические активы в CDN, если необходимость должна возникнуть!
источник
Одним из решений этой проблемы, которое я использовал, является наличие основной копии файлов для чтения / записи на общем диске NFS, а также сохранение копии только для чтения на каждом веб-сервере, так что сбой узла NFS создает доступ к файлам. в режиме только для чтения, а не потерять их полностью.
rsync
работает каждые 15 минут, чтобы сохранять копию только для чтения на каждом веб-хосте свежей.check_link
Баш скрипт работает каждую минуту , чтобы убедиться , что монтирование NFS все еще там , и если не обменивает символическую ссылку на чтение только копировать.Более подробную информацию можно найти в этой статье, когда я впервые настроил эту систему.
расквитаться:
Недостатки:
источник
Возможно, вы захотите рассмотреть базу данных NoSQL. Они предназначены для работы на кластерах, обеспечивают возможную согласованность. Но будьте осторожны, они не КИСЛОТЫ.
Вот введение , которое поможет вам решить, какую базу данных NoSQL вы можете использовать для своих целей.
Вот список ресурсов, связанных с доступным NoSQL.
источник
Почему бы вам не попробовать решение DFS, оно обеспечивает высокий уровень избыточности, и объем может быть распределен между любыми пользователями. Gluster - мой любимый продукт, его очень легко установить и настроить в любом известном дистрибутиве Linux.
источник