我正在尝试将使用Scala中的Play Framework编写的简单Web应用程序部署到Amazon Web Service。

该Web应用程序在本地计算机上的开发模式和生产模式下运行正常,并且我已将其默认端口更改为80。

我按照建议使用Boxfuse部署到AWS。

我首先运行“ sbt dist”
然后“ boxfuse run -env = prod”

事情进展顺利。图像已融合并推送到AWS。 AMI已创建。实例已启动,我的应用程序正在运行。


i-0f696ff22df4a2b71 => 2017-07-13 01:28:23.940 [info] play.api.Play-应用已启动(产品)


然后出现错误信息:


警告:运行状况检查(http://35.156.38.90/)返回400,而不是200。在接下来的300秒内重试...

i-0f696ff22df4a2b71 => 2017-07-13 01:28:24.977 [info] p.c.s. AkkaHttpServer-在/0.0.0.0:80上侦听HTTP

i-0f696ff22df4a2b71 => 2017-07-13 01:28:25.512 [warn] p.f.h.AllowedHostsFilter-不允许主机:35.156.38.90


3分钟后重复尝试后,实例被终止。它给出了如下警告:


确保您的应用程序在端口80或端口80上使用HTTP 200响应


但是我确保应用程序在本地计算机上响应,并且我尝试了Windows和Ubuntu,它们都运行良好。

另外,在本地计算机上运行“ boxfuse run”,我可以使用“ http://localhost”连接到它,但是仍然有错误。

希望有经验的人可以给我一些建议。提前致谢。

ps:不确定是否相关,我将这些设置添加到了application.conf

http {
        address = 0.0.0.0
        port = 80
    }

最佳答案

从错误消息来看,问题似乎可能与application.conf中未设置的play.filters.hosts.allowed有关。该筛选器使您可以配置哪些主机可以访问您的应用程序。 here提供了有关“播放”过滤器的更多详细信息。

这是一个配置示例:

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


请注意,allowed = ["."]匹配所有主机,因此在生产环境中不建议使用。

10-01 21:45
查看更多