現在咱們已經完成了博客引擎了。讓咱們來看一下一些部署Play應用的步驟。mysql
通常,你須要部署你的應用到一臺跟開發時不同的電腦。這臺電腦(頗有多是臺服務器)上面的Play安裝包不會是同樣的。sql
Play容許你給每一個框架安裝包指定不一樣的ID,來用同一個application.conf
管理不一樣的配置。讓咱們假設應用將部署在server01
上。數據庫
一旦框架已經安裝在服務器上,用play id
來定義一個框架ID:安全
$ play id
並設置id爲server01
。如今咱們能夠在yabe的配置中定義只在服務器運行時起效的值。服務器
咱們首先給部署版本定義application.mode
變量。目前,咱們一直使用DEV來實現熱重載,即時從新編譯Java文件,顯示錯誤信息。在PROD模式中,Play會在啓動時編譯全部的Java代碼和模板,並且不會檢查是否有改變。app
在yabe/conf/application.conf
定義:框架
%server01.application.mode=PROD
如今當你在服務器運行yabe,它就會自動在PROD下啓動。.net
在生產環境中,咱們將使用MySQL而不是一直在用的H2數據庫。Play提供了MySQL配套的JDBC驅動,因此咱們不須要下載別的。代理
編輯yabe/conf/application.conf
中的數據庫配置:code
%server01.db=mysql:root:secret@yabe
咱們如今調整一下Hibernate管理數據庫模式的方式。若是Java模型變更時,Hibernate可以自動更新數據庫模式,那是再好不過的。
修改jpa.ddl
配置鍵:
%server01.db=mysql:root:secret@yabe
不過這麼作恐怕會致使不可預料的後果,畢竟,在運行時吧數據庫的安全交給未知的事物,這不是個好主意。若是你不但願Hibernate自動更新數據庫,修改jpa.ddl
配置鍵爲validate
:
%server01.jpa.ddl=validate
目前咱們僅僅是把80端口做爲內置HTTP服務器的默認端口。可是這樣作一臺服務器上只能運行一個Play應用。若是咱們須要在一臺服務器上運行不一樣的應用(不過使用的是不一樣的IP地址),咱們須要使用一個HTTP服務器做爲反向代理。
你能夠選擇喜歡的HTTP服務器並配置其做爲反向代理。這裏咱們選擇輕量級的lighttpd做爲例子。
對lighttpd的詳細配置已經超出了本教程的範圍,但大致上看上去像這樣:
server.modules = ( "mod_access", "mod_proxy", "mod_accesslog" ) … $HTTP["host"] =~ "www.yabe.com" { proxy.balance = "round-robin" proxy.server = ( "/" => ( ( "host" => "127.0.0.1", "port" => 9000 ) ) ) }
而後在application.conf
中加入下面一行,讓本地的反向代理可以鏈接上你的Play應用:
%server01.XForwardedSupport=127.0.0.1
若是一路上你一直跟着本教程,你應該已經懂得如何開發一個Play應用了。你學到了Play開發所需的大部分概念。
但有許多特性咱們還沒談論到,特別是跟Web服務相關的,好比JSON或XML。Play還有一些帶來更多特性的模塊沒有講到。而且Play自己也在不斷髮展着。
若是你認爲Play可以使得你的開發如虎添翼,如今把握機會開始吧!
謝謝收看!