En primer lugar, te explicaré mi situación. Estoy ejecutando un sitio web bastante popular como un proyecto paralelo, por lo que realmente no puedo invertir una tonelada de dinero en él. Actualmente tengo solo un servidor con HAProxy en el frente que envía solicitudes normales a Apache, y todas las solicitudes de archivos estáticos a Lighttpd. Esto está funcionando realmente bien porque Apache maneja todas las solicitudes de php y post, mientras que todas las imágenes se envían a Lighttpd más rápido (el sitio es principalmente imágenes, por lo que esto es realmente importante). Sería bueno no tener que configurar un subdominio para servir las imágenes, porque las URL cortas también son muy importantes, por lo tanto, mi razón para usar HAProxy.
He encontrado un proveedor de alojamiento que ofrece un ancho de banda no medido bastante barato que he estado usando, el problema surge cuando empiezo a sacar tanto ancho de banda como puede manejar la tarjeta de red de 100mbs, por lo que necesito un segundo servidor.
He pensado mucho en mis opciones, así que te explicaré cada una. Espero que pueda proporcionar una idea de cuál es la mejor opción para mí, o tal vez haya otra opción que aún no haya pensado.
Requisitos:
Incluso la distribución de ancho de banda es imprescindible. Tengo un servidor bastante potente, por lo que ampliar no es una opción. Necesito escalar para ganar más ancho de banda.
URL cortas Realmente no suelo configurar un subdominio, como img.example.com, para servir mis imágenes. example.com/image.jpg es cómo es ahora y cómo me gustaría que se quedara. Pero si no hay otra manera, entonces entiendo.
El servidor más cercano que maneja la solicitud sería realmente agradable, pero no obligatorio. Algo para tener en cuenta.
HAProxy a equilibrio de carga:
- Sería muy fácil hacerlo ya que de todos modos ya estoy usando HAProxy. Sin embargo, creo que el problema surge cuando se distribuye el ancho de banda. Podría estar equivocado en esto, pero ¿HAProxy no envía la solicitud a un servidor donde el servidor la procesa y luego la envía de vuelta a través de HAProxy al cliente? Por lo tanto, todo el tráfico vuelve a salir a través del equilibrador de carga, lo que hace que use tanto ancho de banda como todos los servidores combinados.
DNS Round Robin:
- Esta podría ser mi mejor opción. Simplemente replica el sitio web en varios servidores y haz lo que estoy haciendo ahora. La desventaja es que si un servidor se cae, los clientes aún se envían a él. También necesitaría replicar el sitio en varios servidores. Tenía la esperanza de poder tener un servidor principal que maneje todo excepto los archivos estáticos, y luego tener un par de servidores de archivos estáticos. También leí que esto era una especie de "equilibrio de carga del pobre", y sería bueno tener algo un poco más sofisticado.
Retorno directo del servidor:
- Parece realmente complicado, pero podría ser una buena opción. ¿Todavía podría enviar ciertas URL a ciertos servidores? Al igual que ahora con HAProxy, cada URL que termina en la extensión de archivo correcta se envía a Lighttpd, mientras que otras extensiones se envían a Apache. Entonces necesitaría algo similar. Al igual, todas las solicitudes de php son manejadas por el mismo servidor que ejecuta el software de equilibrio, mientras que todas las solicitudes de jpg se envían a varios servidores.
Idealmente, si HAProxy admite Direct Server Return, entonces mi problema estaría resuelto. Tampoco quiero usar un CDN, porque son realmente caros, y este es solo un proyecto paralelo después de todo.
¿Entiendes mi problema? Avíseme si no le expliqué algo bien o si necesita más información.