Сколько доменов на одном сервере Apache?

9

Я размещаю около 300 доменов для своих клиентов на одном сервере Apache. Все они не имеют большого трафика, поэтому загрузка сервера не является проблемой.

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

Есть ли практическое правило, как долго может быть конфигурация Apache и сколько разных доменов она может обрабатывать без проблем? 500 в порядке? 5000?

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

Джин Винсент
источник

Ответы:

9

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

Общее количество запросов и количество ресурсов ЦП (и других ресурсов, таких как пропускная способность, дисковый ввод-вывод, вызовы базы данных и т. Д.) Требуются для отклика сервера.

splattne
источник
+1 - количество процессорного времени, затрачиваемое даже на последовательное сканирование массива из 10 000 записей, хранящихся в ОЗУ, ничтожно мало.
Марк Хендерсон
4

Для такого рода вещей не существует магического эмпирического правила. Все это основано на технических характеристиках оборудования и настройке программного обеспечения. Вы не собираетесь добавлять один новый сайт, а потом увидите, как ваш сервер перевернулся и захлебнулся до смерти (если только это не очень популярный сайт прямо у ворот, и вы не готовы к нему). Как и в большинстве случаев, вам необходимо отслеживать производительность вашего сервера, и когда вы начнете видеть его замедление, оцените этот момент и узнайте об обновлениях оборудования или новом сервере для обработки нового хостинга домена. И поэтому, чтобы ответить на ваше пояснение, речь идет не о количестве доменов, а о том, что каждый домен приносит индивидуально в качестве нагрузки на сервер. Нет магического числа.

Holocryptic
источник
Как конкретный ответ может быть на этот вопрос ...
Нандини Ананд
3
Джин, чтобы сделать резервную копию того, что говорит Holocryptic, представьте рабочую нагрузку, создаваемую 500 (или 5000) веб-сайтами с одной или двумя статическими страницами. Теперь представьте, какая нагрузка создается, если вы размещаете только один веб-сайт. Но что, если этот веб-сайт будет google.com или facebook.com - количество доменов не является проблемой, это работа, которую эти домены просят сервер сделать.
Роб Мойр
@ Роберт Моир: Я не спрашиваю о трафике, который может обработать сервер. Я хочу знать, является ли количество доменов или длина файла конфигурации фактором.
Джин Винсент
3

Вы можете найти http://httpd.apache.org/docs/2.2/vhosts/details.html#hostmatching информативным. Apache использует хеш-таблицу для обработки виртуальных хостов, которые не сопоставлены с *: 80, затем перебирает связанный список всех виртуальных хостов, назначенных этому IP-порту, чтобы найти соответствующий сервер (имя | псевдоним). Возможно, вам придется разместить миллионы доменов, прежде чем этот процесс станет заметно дороже.

Вы также можете захотеть взглянуть на http://httpd.apache.org/docs/2.2/vhosts/mass.html и сравнить его с вашим текущим подходом; Как только вы получите достаточно VHosts, обход связанного списка займет больше времени, чем lstat (), в VirtualDocumentRootитоге будет быстрее, чем индивидуально определенные VHosts.

BMDan
источник
Я использую виртуальные хосты на основе имен, и кажется, что Apache использует хеш-таблицу только для виртуальных хостов на основе IP, что приводит к линейному поиску.
Джин Винсент
Правильный. Извините, если мой ответ не был таким ясным, как мог бы быть в этом вопросе: хеш-таблица используется для выбора связанного списка, по которому нужно перебирать, а не (напрямую), чтобы выбрать, какой VHost должен обслуживать данный запрос (кроме случаев, когда он не запущен NameVirtualHost).
BMDan
1

У меня есть несколько серверов VPS, на которых размещено более 8000 доменов. Сервер работает нормально, средняя загрузка всегда на уровне 0.xx Я думаю, это может справиться больше без проблем. Потребуется больше времени для повторной компиляции Apache при добавлении или удалении домена. Кроме того, файл httpd.conf довольно большой, около 60M. Безопаснее ограничить количество доменов до 5000.

garconcn
источник