Pregunta

Mi sitio web está creciendo. Necesito particionar conjuntos de funciones en diferentes grupos de servidores en lugar de tener todas las funciones ejecutadas en una sola copia del servidor. Tengo 8 servidores idénticos en una configuración de equilibrio de carga de red de Windows.

El problema es: necesito mantener el espacio URL igual. ¿Cuál sería una solución viable? No quiero iniciar nuevos dominios para los conjuntos de características. Estoy pensando en algún tipo de proxy inverso con algunas capacidades de reescritura / enrutamiento basadas en URL (?!?). ¿Alguna recomendación en términos de software o hardware? Esto reemplazará la configuración de WNLB ya que no tiene las capacidades que necesito.

¿Fue útil?

Solución

De hecho, hay varias soluciones para implementar el equilibrio de carga:

  1. DNS Round-Robin
  2. Equilibrio de carga de DNS (con lbnamed)
  3. Proxy Round-Robin
  4. Hardware / TCP Round-Robin

Comprendí que 1) y 2) no son una opción aquí, así que ... si tiene dinero y necesita un rendimiento realmente alto , elija 4). De lo contrario, ve por 3).

Para Proxy Round-Robin, nuevamente, hay varias soluciones posibles: Apache mod_rewrite , Apache mod_proxy , Calamar (y seguramente muchos otros que no conozco).

  • Para "tonto" equilibrio de carga, hay un ejemplo en la Guía de reescritura de URL de mod_rewrite (consulte la sección Proxy Throughput Round-Robin ).

  • Apache mod_proxy puede actuar como proxy para conectar clientes a Internet, pero generalmente se usa como proxy inverso para redirigir una URL a otro servidor . No tiene funcionalidad de caché (pero se puede usar con mod_cache y mod_rewrite ...).

  • Squid es un caché proxy y generalmente se usa para conectar clientes a Internet. Pero también puede usarse como proxy inverso y configurarse para almacenar en caché las solicitudes y acelerar la entrega de contenido.

Como puede ver, elegir uno de ellos depende de qué y cómo desea proxy. En su caso, consideraría ejecutar Apache mod_proxy o Squid si desea almacenar en caché en Linux (si es una opción).

Con respecto al hardware, no soy un especialista, pero creo que un "pequeño" a "medio" servidor dedicado debería ser suficiente. Simplemente no olvide que todas las solicitudes pasarán por esta máquina, por lo que su tamaño depende en gran medida de su tráfico, que parece decente. Esto podría requerir un poco de excavación con datos de la vida real.

Otros consejos

Si tiene 8 servidores, sugeriría usar 7 de ellos para compartir la carga de trabajo y usar un servidor front-end para actuar como proxy.

Su servidor front-end podría ejecutar Apache y usar mod_proxy para delegar cada solicitud HTTP a uno de los 7 servidores back-end. Si lo necesita, puede configurar mod_proxy para delegar el trabajo en función de la URL entrante, por ejemplo, podría tener un servidor que sirva video, dos entradas de blog y el resto haciendo cualquier otra cosa.

Su servidor front-end sería extremadamente ligero: ejecutando Apache y poco más. También puede almacenar en caché su contenido estático en este servidor frontal utilizando Squid o mod_cache de Apache para que las solicitudes de imágenes, js, css y otro contenido estático nunca lleguen a su servidor back-end 7 una vez que se ha almacenado en caché.

EDITAR: Acabo de leer el comentario de Pascal y él sugiere lo mismo. Lo modificaré +1

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top