部署Compojure/Sinatra应用程序

Ham*_*aya 3 ruby clojure sinatra compojure

部署compojure/sinatra应用程序的首选方法是什么?我在主机上运行了多个站点,因此我无法在端口80上运行jetty/mongrel.我应该如何处理在同一主机上运行的多个站点/应用程序?

pjb*_*jb3 7

使用在端口80上运行的Apache等Web服务器,并使用虚拟主机将流量定向到正确的应用服务器.所以基本上你可以在不同的端口上运行每个应用服务器(jetty/mongrel等),然后在每个虚拟主机中使用不同的配置来使用mod代理之类的东西将流量转发到app服务器.您可以使用其他Web服务器,例如lighttpdnginx.对于sinatra应用程序,你也可以看看Phusion Passenger,aka mod rails,aka mod rack,理论上适用于任何机架应用程序,虽然我只使用它与Rails.

如果再研究一下,你会发现有各种方案可以从网络服务器向app服务器转发流量,但是做这种事情的基本机制总是归结为拥有一个侦听端口的web服务器80使用基于名称的虚拟主机,然后将流量转发到适当的应用程序.