Hai*_*jin 12 scala amazon-web-services playframework cloudcaptain
我正在尝试将使用Scala中的Play Framework编写的简单Web应用程序部署到Amazon Web服务.
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 - 应用程序启动(Prod)
然后出现错误消息:
警告:Healthcheck(http://35.156.38.90/)返回400而不是200.重试接下来的300秒......
i-0f696ff22df4a2b71 => 2017-07-13 01:28:24.977 [info] pcsAkkaHttpServer - 在/0.0.0.0:80上收听HTTP
i-0f696ff22df4a2b71 => 2017-07-13 01:28:25.512 [warn] pfhAllowedHostsFilter - 不允许主持人:35.156.38.90
3分钟后反复尝试终止实例.它给出了一个警告:
确保您的应用程序使用HTTP 200 at/on 80端口进行响应
但我确保应用程序在本地机器上响应,我尝试了Windows和Ubuntu,一切运行良好.
此外,在本地计算机上运行"boxfuse run",我可以使用" http:// localhost " 连接到它,但仍然有错误.
希望有经验的人能给我一些建议.提前致谢.
ps:不确定是否相关,我将这些设置添加到application.conf中
http {
address = 0.0.0.0
port = 80
}
Run Code Online (Sandbox Code Playgroud)
Leo*_*o C 26
从错误消息判断,看起来问题可能与play.filters.hosts.allowed没有设置有关application.conf
.过滤器允许您配置哪些主机可以访问您的应用程序.有关Play过滤器的更多详细信息,请参见此处.
这是一个配置示例:
play.filters.hosts {
allowed = ["."]
}
Run Code Online (Sandbox Code Playgroud)
请注意,allowed = ["."]
在生产环境中不建议匹配所有主机.
Axe*_*ine 21
如果您的应用程序使用允许的主机过滤器,则必须确保application.conf中的play.filters.hosts.allowed允许来自任何地方的连接,否则会导致ELB运行状况检查失败.例如:
play.filters.hosts {
allowed = ["."]
}
Run Code Online (Sandbox Code Playgroud)
官方Play文档中的更多信息.
归档时间: |
|
查看次数: |
9690 次 |
最近记录: |