Назад | Перейти на главную страницу

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

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

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

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

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

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

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

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

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

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

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