Me preguntaba si lo siguiente es posible con las ofertas de AWS.
https://www.example.com/a/
-> servido por Apache en la instancia A de EC2
https://www.example.com/b/
-> servido por Apache en la instancia B de EC2
Para aclarar, no quiero que los archivos en una ruta de directorio estén en la misma instancia del servidor que los archivos en la otra ruta de directorio.
Entiendo que esto puede ser posible con un proxy de algún tipo, pero existe una solución más fácil con una de las ofertas de AWS.
El EC2 Load Balancer no parece permitir el cambio basado en la ruta del directorio. La ruta 53 funciona en el nivel de DNS, que no tiene información de ruta para devolver IP en función de eso.
amazon-web-services
apache2
Joseph Shih
fuente
fuente
Host:
encabezados ni filtrará el tráfico falso. Parece poco probable que agreguen características como las que está solicitando si mirar los encabezados es demasiado trabajo para ellos. Afortunadamente tienen otras opciones.Respuestas:
Use AWS Application Load Balancer , que realiza el enrutamiento basado en rutas . Ese segundo enlace es un tutorial sobre cómo hacerlo.
En resumen, configura su ALB como normal, luego sigue estos pasos (copiados del tutorial de AWS):
fuente
Además de la excelente respuesta de Tim, también puede lograr esto con CloudFront .
Primero, cree su distribución , agregando orígenes para la instancia A de EC2 y la instancia B de EC2 (que también podrían ser equilibradores de carga, hosts que no sean de AWS o incluso depósitos S3).
Luego, configure las reglas de comportamiento de la memoria caché para asignar / a / * y / b / * a los orígenes apropiados.
Si tiene sentido o no usar CloudFront para este propósito dependerá de su aplicación y de la necesidad de una CDN.
fuente
/a*
y/b*
puede ser manejado por diferentes servicios, diferentes cuentas, diferentes regiones o incluso una ruta manejada por algo que se ejecuta dentro de AWS y el otro en otro lugar. CloudFront tiene muchos casos de uso que conceptualmente no requieren una CDN en absoluto.