scala amazon-web-services playframework boxfuse

scala - Error "host no permitido" al implementar una aplicación de Play Framework en Amazon AWS con Boxfuse



amazon-web-services playframework (2)

Estoy tratando de implementar una aplicación web simple escrita usando Play Framework en el servicio web de Scala to Amazon.

La aplicación web se está ejecutando correctamente en modo de desarrollo y modo de producción en mi máquina local, y he cambiado su puerto predeterminado a 80.

Utilicé Boxfuse para implementar en AWS según lo sugerido.

Primero ejecuto " sbt dist " y luego " boxfuse run -env = prod "

Las cosas salieron bien según lo deseado. La imagen se fusiona y se envía a AWS. AMI es creado. La instancia se inició y mi aplicación se estaba ejecutando.

i-0f696ff22df4a2b71 => 2017-07-13 01: 28: 23.940 [info] play.api.Play - Aplicación iniciada (Prod)

Luego vino el mensaje de error:

ADVERTENCIA: Healthcheck ( http://35.156.38.90/ ) devolvió 400 en lugar de 200. Volviendo a intentar durante los siguientes 300 segundos ...

i-0f696ff22df4a2b71 => 2017-07-13 01: 28: 24.977 [info] pcsAkkaHttpServer - Escuchando HTTP en /0.0.0.0:80

i-0f696ff22df4a2b71 => 2017-07-13 01: 28: 25.512 [warn] pfhAllowedHostsFilter - No se permite el host: 35.156.38.90

La instancia finalizó después de repetidos intentos después de 3 minutos. Dio una advertencia como:

Asegúrese de que su aplicación responda con un HTTP 200 en / en el puerto 80

Pero me he asegurado de que la aplicación responda en la máquina local, y probé tanto con Windows como con Ubuntu, todo funciona bien.

Además, ejecutando "boxfuse run" en la máquina local, me puedo conectar a él usando " http: // localhost ", pero todavía tengo el error.

Espero que alguien con experiencia me pueda dar algunas sugerencias. Gracias por adelantado.

ps: no estoy seguro si es relevante, agregué estas configuraciones a application.conf

http { address = 0.0.0.0 port = 80 }


A juzgar por el mensaje de error, parece que el problema podría estar relacionado con play.filters.hosts.allowed no configurado en application.conf . El filtro le permite configurar qué hosts pueden acceder a su aplicación. Más detalles sobre el filtro Play están disponibles aquí .


Como se indica en la documentación de Boxfuse Play :

Si su aplicación utiliza el filtro de hosts permitidos, debe asegurarse de que play.filters.hosts.allowf en application.conf permita las conexiones desde cualquier lugar, ya que de lo contrario este filtro falla. Por ejemplo:

play.filters.hosts { allowed = ["."] }

Más información en la documentación oficial de Play .