Как и где хранить загруженные пользователем файлы на веб-сайте сценария с высокой посещаемостью? - PullRequest
2 голосов
/ 12 марта 2010

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

Ответы [ 3 ]

0 голосов
/ 12 марта 2010

Рассматривали ли вы возможность использования Amazon S3 для хранения и обслуживания файлов, загруженных пользователями?

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

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

0 голосов
/ 12 марта 2010

Вы спрашивали о том, как Facebook хранит фотографии. Возможно, вы захотите прочитать следующую статью:

Игла в стоге сена: эффективное хранение миллиардов фотографий

0 голосов
/ 12 марта 2010

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

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

...