es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Utilizando CloudFront para manejar archivos estáticos y backend

Tengo una aplicación de página única (hecha con angular), que estoy sirviendo mediante la configuración de Cloudfront a un bucket de S3. Esto está funcionando bien.

Sin embargo, quiero ejecutar el backend de mi sitio web en el mismo dominio. Lo que he hecho es agregar otro origen a mi distribución de Cloudfront que apunta a Elastic Beanstalk donde se está ejecutando la aplicación de Django.

Luego, configuré los comportamientos para que el Patrón de Ruta /apiv1/* sea manejado por Django. Esto no funciona y estoy obteniendo un error 403 de acceso prohibido al intentar acceder a mis puntos finales.

El comportamiento que estoy buscando es el siguiente:
1. / debería apuntar a index.html y cargar archivos estáticos (esto funciona actualmente)
2. /apiv1/… debería apuntar a Django. Por ejemplo, para acceder a un punto de acceso de inicio de sesión tendría website.com/apiv1/api/login (en lugar de localhost/api/login en mi máquina).

¿Es esto posible?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Sí, es posible servir una aplicación de página única a través de CloudFront y también ejecutar el backend del sitio web a través del mismo dominio. El problema de recibir un error 403 Prohibido al acceder a los puntos finales podría ser debido a una configuración incorrecta de la identidad de acceso de origen en CloudFront.

    Para resolver este problema, asegúrese de que la identidad de acceso de origen utilizada en la distribución de CloudFront tenga permiso para acceder a los recursos en la instancia Elastic Beanstalk. Además, asegúrese de que los grupos de seguridad y las listas de control de acceso de red asociadas con la instancia Elastic Beanstalk permitan el tráfico entrante desde la distribución de CloudFront.

    Otra solución potencial es configurar el Patrón de Ruta para incluir una barra diagonal antes de /apiv1/*, de modo que sea /apiv1/*. Esto garantiza que solo se reenvíen las solicitudes con una ruta que comience con /apiv1/ a la instancia Elastic Beanstalk.

    En resumen, para lograr el comportamiento deseado de servir los archivos estáticos a través de S3 y el backend a través de Elastic Beanstalk mediante CloudFront, asegúrese de que la identidad de acceso de origen y los grupos de seguridad estén configurados correctamente y configure el Patrón de Ruta con una barra diagonal antes de apiv1/*.

Comments are closed.