我正在尝试将使用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 = ["."]
匹配所有主机,因此在生产环境中不建议使用。