雖然我們可以用webrick或mongrel來部署它爲什麼我們在部署rails應用程序時需要apache服務器?
回答
大多數Ruby應用程序服務器將只運行一個Ruby進程(並且Ruby有一個全局解釋器鎖,這使得多線程相當無意義),這意味着它一次只能提供一個請求。至少可以說,這不會給你很好的表現。
有兩種解決方法:要麼運行多個Ruby應用程序服務器,並在它們前面放置負載平衡器或反向代理,例如, Nginx或Apache在Mongrels或Thin服務器之前(您運行的進程數量反映了您可以並行處理的請求數量)。或者運行Passenger,它是一個Apache或Nginx模塊,用於管理可隨負載變化而動態增長和縮小的應用程序池。第一個選項爲您提供了更多配置選項,但第二個選項更易於管理。你想要哪一個取決於你的用例。
當然還有其他解決方案,但它們適用於更具體的用例。例如,您可以編寫一個非常高性能的應用程序並使用Thin進行部署 - 但它需要您編寫一個事件驅動的應用程序。您無法部署Rails應用程序並期望獲得相同的性能。
你可以在技術上,但你通常不想要,因爲這會在提供像css或圖像這樣的靜態文件時帶來一點點的開銷。
在Phusion Passenger允許使用Apache和nginx託管Rails的情況下,部署Rails應用程序非常可怕且困難。 Apache是一個非常成熟的Web服務器,可以輕鬆擴展並可配置以滿足多種需求。 (nginx並不成熟,但效率非常高,也非常易於配置,是用於rails託管的Apache的一個很好的選擇。)Webrick和Mongrel非常適合開發,但除非您是專家,否則很難將其設置爲生產用途。
有許多方法可以在不涉及Apache的情況下部署Rails應用程序,但Apache是最流行的服務器,最穩定和可擴展的最成熟的服務器。 WEBrick和Mongrel都有各自的優點,但Apache僅僅是Web服務器的默認假設,並且在大多數情況下是阻力最小的路徑。
- 1. 爲什麼我們需要服務器來運行angular2應用程序?
- 2. 爲什麼我需要部署「默認」應用程序才能在GCP中部署多個服務?
- 3. 計算機服務器需要什麼來部署ASP.NET Web應用程序?
- 4. 我需要什麼樣的網絡服務器應用程序?
- 5. 在apache上部署Rails應用程序
- 6. 爲什麼或什麼時候應用需要服務器?
- 7. 部署Aurelia/Node應用程序時需要什麼?
- 8. 爲什麼Java應用程序需要應用程序服務器來託管?
- 9. 爲什麼我們需要通用服務定位器庫?
- 10. 爲什麼我們在Selenium Webdriver中不需要服務器?
- 11. 在apache服務器上部署角應用程序
- 12. 在Apache服務器上部署mod_wsgi Hello World應用程序
- 13. 爲什麼Web應用程序只需要幾小時在線服務器?
- 14. 如何在同一服務器上部署Apache,Rails應用程序和phpMyAdmin?
- 15. 爲什麼我們需要在這個程序中使用服務和工廠?
- 16. 什麼時候以及爲什麼需要HTTP服務器以及websphere應用程序服務器?
- 17. 如何在godaddy服務器上部署rails應用程序
- 18. 在多臺服務器上部署Ruby on Rails應用程序
- 19. 在Ubuntu 12服務器上部署Rails應用程序
- 20. 什麼是Grails應用程序部署的最佳應用程序服務器?
- 21. 爲什麼我們需要序列化的Web服務
- 22. Nodejs vs SignalR:爲什麼我們需要服務器端的JavaScript?
- 23. 爲什麼我們需要在gRPC服務器上註冊反射服務
- 24. 爲什麼使用JavaFX時,Java桌面應用程序需要特別部署?
- 25. 爲什麼我在部署Rails應用程序時失敗:「sh -c'cd/var/www/releases ...'」?
- 26. 我們應該需要兩臺服務器,在服務器端
- 27. 在heroku服務器上部署應用程序時,信息流是什麼?
- 28. 我想用Mysql作爲數據庫部署我的rails應用程序。我想要免費的heroku服務器。這個免費服務器有什麼限制?
- 29. 爲什麼我總是需要重新啓動Rails服務器?
- 30. 當我試圖部署應用程序時,部署失敗騾3.4.2服務器