¿Cuántos dominios hay en un único servidor Apache?

9

Alojo alrededor de 300 dominios para mis clientes en un único servidor Apache. Todos no tienen mucho tráfico, por lo que la carga del servidor no es un problema.

Teóricamente, no debería haber límite cuántos dominios de bajo tráfico puedo tener en el servidor, pero me preocupa que si tengo demasiados dominios en el servidor, la simple lista de dominios para verificar cada solicitud entrante ralentizará Apache abajo.

¿Existe una regla general de cuánto tiempo puede ser una configuración de Apache y cuántos dominios diferentes puede manejar sin problemas? Son 500 ok? 5000?

Aclarando: no estoy preguntando cuánto tráfico puede manejar un servidor. Sé que este servidor específico puede manejar al menos el doble de la cantidad de tráfico actual. Quiero saber si la cantidad de dominios es un factor crítico o no.

Gene Vincent
fuente

Respuestas:

9

He visto servidores con literalmente miles de dominios ejecutándose sin problemas. El rendimiento no se degrada significativamente solo por el número de sitios que está ejecutando.

Es el número total de solicitudes y la cantidad de CPU (y otros recursos como ancho de banda, disco IO, llamadas a la base de datos, etc.) que se requieren por solicitud que influyen en la capacidad de respuesta del servidor.

splattne
fuente
+1: la cantidad de tiempo de CPU que se tarda incluso en escanear en serie una matriz de 10.000 entradas almacenada en RAM es insignificante.
Mark Henderson
4

No hay una regla mágica para este tipo de cosas. Todo se basa en especificaciones de hardware y ajuste de software. No va a agregar un sitio nuevo y luego verá que su servidor se vuelca y se ahoga (a menos que sea un sitio de uso realmente alto desde el principio y no esté preparado para ello). Como con la mayoría de las cosas, debe monitorear el rendimiento de su servidor, y cuando empiece a ver que se ralentiza, evalúe en ese momento y vea las actualizaciones de hardware o un nuevo servidor para manejar el nuevo alojamiento de dominio. Y para responder a su punto de aclaración, no se trata de la cantidad de dominios, se trata de lo que cada dominio trae individualmente como carga al servidor. Sin número mágico

Holocryptic
fuente
Una respuesta tan específica puede ser a esta pregunta ...
Nandhini Anand
3
Gene, para respaldar lo que dice Holocryptic, imagine la carga de trabajo generada por 500 (o 5000) sitios web con una o dos páginas estáticas en ellos. Ahora imagine la carga de trabajo generada si aloja solo un sitio web. Pero, ¿qué pasa si ese sitio web es google.com o facebook.com? La cantidad de dominios no es el problema, es el trabajo que esos dominios le están pidiendo al servidor que haga.
Rob Moir
@Robert Moir: No estoy preguntando sobre el tráfico que el servidor puede manejar. Quiero saber si el número de dominios o la longitud del archivo de configuración es un factor.
Gene Vincent
3

Puede encontrar http://httpd.apache.org/docs/2.2/vhosts/details.html#hostmatching informativo. Apache usa una tabla hash para manejar VHosts que no están asignados a *: 80, luego itera sobre una lista vinculada de todos los VHosts asignados a ese puerto IP: para encontrar el Servidor correspondiente (Nombre | Alias). Probablemente necesite hospedar millones de dominios antes de que el proceso sea notablemente costoso.

También puede echar un vistazo a http://httpd.apache.org/docs/2.2/vhosts/mass.html y compararlo con su enfoque actual; una vez que obtenga suficientes VHosts para que el recorrido de la lista vinculada tarde más tiempo que un lstat (), VirtualDocumentRootterminará siendo más rápido que los VHosts especificados individualmente.

BMDan
fuente
Estoy usando hosts virtuales basados ​​en nombres y parece que Apache solo usa la tabla hash para hosts virtuales basados ​​en IP, lo que resulta en una búsqueda lineal.
Gene Vincent
Correcto. Lo siento si mi respuesta no fue tan clara como podría haber sido en este punto: la tabla hash se usa para seleccionar qué lista vinculada se repite, no (directamente) para seleccionar qué VHost debe atender una solicitud determinada (excepto cuando no se está ejecutando NameVirtualHost)
BMDan
1

Tengo algunos servidores VPS que alojan más de 8000 dominios. El servidor funciona bien, la carga promedio siempre está en el nivel 0.xx. Supongo que puede manejar más sin problemas. Necesitará más tiempo volver a compilar Apache al agregar o eliminar un dominio. Además, el archivo httpd.conf es bastante grande, alrededor de 60M. Es más seguro limitar el número de dominios a alrededor de 5000.

garconcn
fuente