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


9

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

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

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

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

Відповіді:


9

Я бачив сервери з буквально тисячами доменів, які працюють без проблем. Ефективність не погіршується лише за кількістю запущених сайтів.

Це загальна кількість запитів і кількість CPU (та інших ресурсів, таких як пропускна здатність, дисковий ввід, дзвінки до бази даних тощо) на запит, які впливають на реакцію сервера.


+1 - кількість часу процесора, необхідного для навіть серійного сканування масиву входу 10 000, що зберігається в оперативній пам'яті, незначна.
Марк Хендерсон

4

Не існує жодного магічного правила для подібних речей. Все засноване на технічних характеристиках та налаштування програмного забезпечення. Ви не збираєтеся додавати один новий сайт, а потім побачите, як ваш сервер перекидається і задихається (якщо тільки це не дуже ефективний веб-сайт прямо з воріт, і ви не готові до нього). Як і в більшості речей, вам потрібно стежити за роботою вашого сервера, і коли ви почнете бачити його сповільнення, оцініть в цей момент і дізнайтеся про оновлення обладнання або новий сервер для обробки нового хостингу домену. Отже, щоб відповісти на ваше уточнююче питання, справа не в кількості доменів, а в тому, що кожен домен приносить окремо як завантаження на сервер. Ніякого магічного числа.


Як конкретну відповідь можна відповісти на це питання ...
Нандіні Ананд

3
Гене, щоб створити резервну копію того, що говорить Холокриптик, уявіть собі завантаженість, сформовану 500 (або 5000) веб-сайтами з однією або двома статичними сторінками. Тепер уявіть собі завантаженість, якщо ви розміщуєте лише один веб-сайт. Але що робити, якщо на цьому веб-сайті є google.com чи facebook.com - кількість доменів не є проблемою, це робота, яку ці домени просять сервер робити.
Роб Моїр

@Robert Moir: Я не запитую про трафік, на який може працювати сервер. Хочу знати, чи є число доменів чи довжина конфігураційного файлу фактором.
Джин Вінсент

3

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

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


Я використовую віртуальні хости на основі імен і, схоже, Apache використовує хеш-таблицю лише для віртуальних хостів на основі IP, в результаті чого відбувається лінійний пошук.
Джин Вінсент

Правильно. Вибачте, якщо моя відповідь виявилася не такою чіткою, як це могло бути в цьому пункті: хеш-таблиця використовується для вибору списку пов'язаного списку для повторення, а не (безпосередньо) для вибору, який VHost повинен обслуговувати даний запит (за винятком випадків, коли не працює NameVirtualHost).
BMDan

1

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.