代码之家  ›  专栏  ›  技术社区  ›  vortexkd

Playframework 2.6:如何在没有控制台的情况下启动生产构建?

  •  0
  • vortexkd  · 技术社区  · 7 年前

    我正在使用Play Framework 2.6。使用创建生产构建zip之后

    dist
    

    在play console中,我使用此代码在服务器上启动应用程序

    my-first-app-1.0/bin/my-first-app -Dconfig.file=/path/to/config -Dplay.http.secret.key=$APP_SECRET
    

    这将启动一个以以下内容结尾的控制台:

    [info] p.c.s.AkkaHttpServer - Listening for HTTP on /0:0:0:0:0:0:0:0:9000
    

    之后,我的服务器就可以正常工作了。但是,关闭控制台( ctrl+C )或退出终端窗口; ctrl+d 也什么都不做。我错过了什么?

    使现代化

    所以我查看了日志,但在服务器关闭之前什么都没有发生。

    2018-04-20 02:24:36,207 [INFO] from application in application-akka.actor.default-dispatcher-28 - <some benign application log>
    2018-04-20 02:36:25,881 [INFO] from play.core.server.AkkaHttpServer in Thread-5 - Stopping server...
    2018-04-20 02:36:25,940 [INFO] from application in application-akka.actor.default-dispatcher-41 - Shutting down connection pool.
    

    当然,在此期间,我的终端也断开了连接(在我看来,我启动服务器的方式是错误的,请告知。)

    2 回复  |  直到 7 年前
        1
  •  1
  •   o-0    7 年前

    我需要说的是,我没有超高级的经验;但这里有几件事;关于Play应用程序的部署:

    1. 物理/虚拟服务器上的独立应用程序 :如果要在裸机/服务器实例等上部署应用程序,而不需要任何其他面向前端的应用程序,则需要在端口上运行应用程序 80 9000 。因为您希望您的用户转到 example.com 而不是 example.com:9000

    2. 物理/虚拟服务器上http服务器后面的独立应用程序 :您可以使用 front end http server (例如,Nginx)并在其背后运行您的Play应用程序。这样,您就可以使用前端http服务器作为应用程序的桥梁。事实上,您可以将其用作应用程序多个实例的负载平衡器。

    3. 停靠应用程序 :这一次,您从应用程序中创建一个docker映像,并将该映像放入容器管理系统(例如Kubernetes)。然后,您需要创建一个负载平衡器,将流量从公共Internet定向到您的容器管理系统。

    4. 云服务部署 :还有 cloud service deployments 例如,在Heroku中,您在 build.sbt ;然后你把你的应用程序推到它的结构中,剩下的都会处理好。

    对于小球队来说,第三名显然是杀伤力过大;但也有可能 解决方案 你的问题在哪里;你不会想的 ssh 并部署您的Play应用程序。数字四也是一样。然而,对于第一和第二,您可以创建一个shell脚本,该脚本根据特定的标准(当您的服务器重新启动时)执行,以执行与播放相关的脚本;打开应用程序。

        2
  •  0
  •   vortexkd    7 年前

    我的问题似乎确实是因为游戏机而退出了。

    我通过使用nohup开始游戏来解决这个问题: nohup ~/myApp/bin/myApp -Dconfig.file=/path/to/conf -Dplay.http.secret.key=$SECRET &