我們使用PHP和Java開發了各種應用程序。我們使用apache和tomcat。因此,當我們重新啓動系統時,一旦apache啓動,PHP應用程序就會啓動,一旦tomcat啓動,Java應用程序就會啓動。我不確定在Play框架中處理這個問題的最好方法是什麼(假設我們有10多個Play應用程序)。當然,單獨啓動每個應用程序並不是正確的解決方案。我們可以編寫一些啓動腳本,在重啓後啓動每個應用程序。但我很想知道開發者如何使用ROR和Django等其他類似的框架來處理這種情況。有沒有這方面的工具?任何可用於Play應用程序的工具?管理在Play框架中開發的多個應用程序
回答
如果你在Ubuntu上託管你可能是最好的服務封堵初始化腳本(this is a decent start)對於每個應用程序,這樣,他們將與機器啓動。
或者https://github.com/dlecan/play2-war-plugin看起來會讓你發送播放2個應用程序到一個WAR文件中,你可以在Tomcat中部署:在Play 2系列中對WAR部署的核心支持不會預定到2.1版,所以你可能不會能夠得到那個工作。播放1原生支持它:只是去
play war myapp -o myapp.war
部署WAR包有一些缺點,我不能討論有關性能,但你可以在WAR plugin兼容性列表看到仍然有一些不支持的功能。所以戰爭應該被看作是最後一個選項(如果沒有其他可用)
目前,我有一組相同的,PHP網站通過Apache +獨立播放應用程序的工作。當然,他們都需要在默認網絡端口(80)上的自定義域/子域上可用。
非常籠統:我們正在將應用程序部署在專用IP上,前端通過nginx
服務器進行控制,以實現代理目的和負載平衡。得益於此,我們甚至可以在服務器上以開發模式啓動應用程序,並且可以在其域中使用它。當然,如果你沒有額外的IP地址,你也可以使用Apache作爲代理,但據我所知nginx
或lighthttpd
只是這個任務更快。
您可以找到Set-up a front-end server文檔的更多細節。
現在,使用一些簡單的bash腳本和git鉤子,您可以在遠程計算機上準備和部署應用程序,而無需重新發送整個程序包(其大小約爲50mb,適用於小型應用程序)。與Heroku部署類似,您應該只將應用代碼推送到您的服務器,然後使用鉤子和腳本應該準備dist
包(more about dist)並在某個定義的端口上運行它,這將通過前面提到的代理提供。
當然開始通過Play的控制檯應用程序是在生產ENV內存不必要的浪費。
有關如何在服務器啓動時啓動Play應用程序的示例,因此您可能會根據您的計算機找到一些提示。
據我所知這是目前最優化的場景
- 1. 管理多個框架應用程序
- 2. 分發Play 2.0.1框架應用程序
- 3. 多代理框架和Web應用程序開發
- 4. OS X應用程序開發框架
- 5. Droid4me應用程序開發框架
- 6. 移動應用程序開發框架
- 7. 在開發過程中管理多個應用程序配置文件
- 8. 在Play框架中的遠程處理
- 9. 部署Play!框架應用程序
- 10. Play框架2.1應用程序部署
- 11. Play用戶管理!框架2.0.3
- 12. 如何在Play中的多個應用程序之間共享模型!框架?
- 13. Scala和Play框架Web應用程序託管
- 14. Zend框架會話管理多模塊應用程序
- 15. 在Delphi中使用管理員權限開發應用程序
- 16. AJAX應用程序的哪個Java Web開發框架?
- 17. 可以在Google Play中發佈多少個應用程序?
- 18. 無法在Play框架工作應用程序中導入com.google.firebase.FirebaseApplication
- 19. 在Play中設置HTTP標頭!框架Web應用程序
- 20. 我正在開發一個類似於fb聊天的應用程序。哪個框架 - Play或Django?
- 21. Play框架打開的文件太多
- 22. 應用程序引擎python的用戶管理框架?
- 23. 64位Twitter框架爲在xcode開發的應用程序
- 24. 開發android應用程序需要哪個框架? MVC/MVP/MVVM
- 25. 在Scala中使用Play框架開發的REST應用程序的Swagger yaml和json文件
- 26. Play框架應用程序中的內存泄漏
- 27. Play框架應用程序中環境特定的配置
- 28. 如何使用rails和cancan開發多個管理應用程序?
- 29. 在應用程序服務器中託管的框架應用程序
- 30. Play框架2開發配置
感謝您的意見。我知道戰爭的解決方案。但Play框架開發人員建議使用內置服務器以獲得更好的性能。 Init腳本是另一種解決方案(我在文章中也提到過)。但我仍然覺得必須有更好的辦法。這就是爲什麼我想知道它是如何在ROR或Django世界中完成的。 – Steve