Это может быть вопрос и для serverfault, но здесь также есть темы.Масштабирование файловых систем
Я строю новый веб-сайт, состоящий из 6 серверов. 1 mysql, 1 веб-сервер, 2 сервера обработки файлов, 2 файловых сервера. Короче говоря, серверы обработки файлов обрабатывают файлы и копируют их на файловые серверы. В этом случае у меня есть два варианта;
Я могу настроить веб-сервер для каждого файлового сервера и обслуживать файлы непосредственно оттуда. Например, file1.domain.com/file.zip. Некоторым файлам (не всем) потребуется проверка подлинности, поэтому я буду аутентифицировать пользователей через memcache с этих серверов. 90% запросов не потребует никакой проверки подлинности.
Или я могу настроить NFS и обслуживать файлы непосредственно с веб-сервера, как www.domain.com/fileserve.php?id=2323 (это основной пример)
Поскольку проект в значительной степени основывается на файлы, второй вариант может быть не таким эффективным, как первый вариант, так как он будет потреблять больше памяти (даже если я разделяю файлы на куски во время обслуживания)
Установка будет оставаться неизменной в течение длительного времени, t добавить новые файловые серверы в настройку.
Каковы ваши идеи, какой из них лучше? Или любая другая идея?
Спасибо заранее,
Это был бы мой выбор. Только одно предостережение: будьте осторожны, ваше будущее и ваши преемники будут благодарны вам! Это досадно легко в конечном итоге с неприятными, трудно поддерживаемыми беспорядками, если вы не проявляете осторожность при разработке таких вещей, как прокси-сервер и переписываете правила. –
Извините за мой вопрос, поскольку я не настроил обратный прокси-сервер для веб-серверов. Итак, вы имеете в виду, что я не буду устанавливать ничего подобного NFS, когда кто-то запросит www.domain.com/file.zip, он проксирует запрос file1.domain.com/file.zip напрямую из протокола HTTP. Я знаю этот дизайн в теории и хотел бы практиковать его, используя nginx в качестве обратного прокси, но мне интересно, какие недостатки этого дизайна, особенно с точки зрения памяти. Как это повлияет на потребление памяти на веб-сервере (файловые серверы будут потреблять ту же память, что и первая опция) – murat
@murat Я думаю, вы заявляете об этом, но HTTP-запрос не предназначен для защиты, а скорее передний обратный прокси. Таким образом, вы не должны нести NFS, а HTTP в сети. Вы также можете делать такие вещи, как разгрузка GZIP-сжатия на переднем веб-сервере. Потребление ресурсов, о котором я бы не подумал, было бы хуже, чем обслуживание NFSoTCP. Большинство обратных прокси-потоков передают данные через прохождение заголовков и все, но при необходимости обрабатывают возврат, но если вы используете двоичный код, это не имеет никакого значения. – Xailor