Я начинаю небольшую веб-хостинговую компанию, чтобы научить меня системному администрированию, и одна из проблем, с которыми я столкнулся, заключается в том, как мне ограничить пропускную способность и дисковое пространство каждого виртуального хоста (Debain / nginx)? Или я ошибаюсь и не должен использовать виртуальные хосты?
я использовал mod_bandwidth для ограничения пропускной способности. Его можно использовать для каждого каталога, файла и т. Д., Поэтому вам просто нужно настроить его для VirtualHost.
Для дискового пространства просто используйте квоту. Создайте учетную запись unix для каждого клиента и назначьте им квоту. Это должно быть достаточно хорошо задокументировано в сети.
Некоторый быстрый поиск в Google показывает мне, что вы можете использовать прокси-сервер Squid для установки очередей для данных, называемых «пулами данных». Очевидно, вы также можете использовать IPROUTE2 и TC (не могу опубликовать ссылку, я недостаточно крут)
Из http://www.faqs.org/docs/Linux-HOWTO/Bandwidth-Limiting-HOWTO.html#AEN65
Помимо обычного кеширования, в Squid есть специальная функция, называемая пулами задержки. Благодаря пулам задержки можно разумным образом ограничивать интернет-трафик, в зависимости от так называемых «волшебных слов», существующих в любом заданном URL. Например, волшебным словом может быть «.mp3», «.exe» или «.avi» и т. Д. Любая отдельная часть URL-адреса (например, .avi) может быть определена как волшебное слово.
Также см. Статью на serverwatch.com под названием Reining-in-Bandwidth-With-Squid-Proxying.
Squid - это, вероятно, самый простой способ, и с его помощью вы также можете делать много других интересных вещей.
Это не просто. Я подозреваю, что невозможно будет просто использовать vhosts для наложения ограничений, если вы не поставите скриптовый прокси перед веб-сервером (и это решает только проблему пропускной способности, если вы не ограничиваете загрузку файлов в скриптовый веб-интерфейс).
Но, безусловно, с точки зрения бизнеса имеет больше смысла продавать пакет, который включает пропускную способность X и использование диска Y, а затем выставлять счет заказчику за излишки (которые вы можете легко измерить по занимаемому пространству диска и журналам доступа).
С.
Чтобы ограничить общее использование полосы пропускания, обратитесь к ответу KikoV, я обсуждаю ограничение дискового пространства.
На самом деле нет прямого способа ограничить дисковое пространство, но у вас есть два варианта: