部署compojure/sinatra应用程序的首选方式是什么?我有多个站点在主机上运行,所以我不能在端口80上运行jetty/mongrel。我应该如何处理在同一主机上运行的多个站点/应用程序?部署Compojure/Sinatra应用程序
3
A
回答
7
使用在端口80上运行的Web服务器(如Apache),并使用virtual hosts将流量定向到正确的应用服务器。所以基本上你会在不同的端口上运行每个应用服务器(jetty/mongrel等),然后在每个虚拟主机中使用不同的配置来使用诸如mod proxy之类的东西将流量转发到应用服务器。您可以使用不同的网络服务器,如lighttpd或nginx。对于sinatra应用程序,您还可以查看Phusion Passenger, a.k.a mod rails, a.k.a mod rack,这在理论上适用于任何机架应用程序,尽管我只使用Rails。
如果你仔细研究一下,你会发现有很多方案将流量从Web服务器转发到应用服务器,但是做这种事情的基本机制总是归结为一个Web服务器监听使用基于名称的虚拟主机的端口80,然后将流量转发到相应的应用程序。
3
多年来,我一直在用各种独立服务器(例如AllegroServe)来做这种事情。我发现,最好的办法是:
- 运行一个不同的,非特权端口(如8080)
- 运行
pound
(或Nginx的等)80上的每个服务器,被配置为请求映射到每个应用程序。
磅很棒,配置最终很简单(不像Nginx)。它还将为您执行SSL前端和HTTP清理,从而减轻应用程序的负担。
0
使用乘客! http://modrails.com - 它是apache和nginx的插件,可让您(非常)轻松地运行一个红宝石应用程序作为虚拟主机
相关问题
- 1. 部署Rails应用程序
- 2. 部署应用程序
- 3. 部署Rails应用程序
- 4. 部署Perl应用程序
- 5. 部署Angular.js应用程序
- 6. Wpf应用程序部署
- 7. 部署 - Java应用程序
- 8. 部署QML应用程序
- 9. 部署WCF应用程序
- 10. 部署C#应用程序
- 11. 部署winforms应用程序
- 12. 部署asp.net应用程序
- 13. 部署iPhone应用程序
- 14. 部署rails应用程序
- 15. 部署ASP.net应用程序
- 16. 部署OpenCV应用程序
- 17. WinForm应用程序部署
- 18. 部署Android应用程序
- 19. 部署.NET应用程序
- 20. 部署.NET应用程序
- 21. (Rails应用程序部署)
- 22. 部署C#应用程序
- 23. 部署flex应用程序
- 24. NodeWebkit - 部署应用程序
- 25. Red5部署应用程序
- 26. 部署Web应用程序
- 27. RoR应用程序部署
- 28. 部署Web2py应用程序
- 29. 部署python应用程序
- 30. 远程部署iphone应用程序