Scala &引用;“不允许使用主机”;使用Boxfuse将play framework应用程序部署到Amazon AWS时出错

Scala &引用;“不允许使用主机”;使用Boxfuse将play framework应用程序部署到Amazon AWS时出错,scala,amazon-web-services,playframework,boxfuse,Scala,Amazon Web Services,Playframework,Boxfuse,我正在尝试将一个使用Scala中的Play框架编写的简单web应用程序部署到AmazonWeb服务 在我的本地机器上,web应用程序在开发模式和生产模式下运行正常,我已将其默认端口更改为80 我使用Boxfuse按照建议部署到AWS 我第一次跑“sbt dist” 然后“boxfuse运行-env=prod” 事情进展顺利。图像被融合并推送到AWS。AMI被创建。实例已启动,并且我的应用程序正在运行 i-0f696ff22df4a2b71=>2017-07-13 01:28:23.940[inf

我正在尝试将一个使用Scala中的Play框架编写的简单web应用程序部署到AmazonWeb服务

在我的本地机器上,web应用程序在开发模式和生产模式下运行正常,我已将其默认端口更改为80

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

我第一次跑“sbt dist” 然后“boxfuse运行-env=prod

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

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

然后出现了错误消息:

警告:Healthcheck()返回了400而不是200。在接下来的300秒内重试…

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

i-0f696ff22df4a2b71=>2017-07-13 01:28:25.512[警告]p.f.h.允许主机筛选器-不允许主机:35.156.38.90

该实例在3分钟后重复尝试后终止。它发出了如下警告:

确保应用程序在端口80上以HTTP 200响应

但我已经确保应用程序在本地机器上响应,并且我尝试了Windows和Ubuntu,都运行良好

另外,在本地机器上运行“boxfuse run”,我可以使用“”连接到它,但仍然有错误

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

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

http {
        address = 0.0.0.0
        port = 80
    }

从错误消息判断,问题可能与未在
application.conf
中设置有关。过滤器允许您配置哪些主机可以访问您的应用程序。有关播放筛选器的更多详细信息,请参阅

下面是一个配置示例:

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

如中所述:

如果应用程序使用允许的主机筛选器,则必须确保application.conf中的play.filters.hosts.allowed允许从任何位置进行连接,否则此筛选器会导致ELB healthchecks失败。例如:


更多信息请参见。

这是否安全?当然不是一个包治百病的安全解决方案,但是像这样的主机访问过滤措施确实有助于防止网络攻击。谢谢。我这样问是因为我在播放文档中看到这样的内容:“您可以使用.pattern来匹配所有主机(不建议在生产中使用)。请注意,过滤器还将从主机的末尾删除点字符,因此example.com模式将匹配example.com。”我有一种感觉,在一个有弹性的豆茎环境中,这是很困难的,因为它并不总是清楚主人是什么……我明白了。谢谢你指出这一点
allowed=[“]”
是一种简单(且懒惰)的配置,用于解决OP的访问问题。值得注意的是,在生产环境中应该避免这种配置。答案已更新。因此,理想情况下,过滤器应具有条目“35.156.38.90”??还是url?我尝试过这种方法,但它仍然会给我主机不允许的错误。
play.filters.hosts {
  allowed = ["."]
}