部署Compojure/Sinatra应用程序

3

如何部署compojure/sinatra应用程序?由于我的主机上有多个站点在运行,因此我无法在80端口上运行jetty/mongrel。我该如何处理在同一主机上运行的多个站点/应用程序?

3个回答

7
使用像Apache这样运行在80端口上的Web服务器,并使用虚拟主机将流量定向到正确的应用程序服务器。因此,基本上您会在不同的端口上运行每个应用程序服务器(jetty / mongrel等),然后在每个虚拟主机中都有不同的配置来使用类似mod proxy的东西将流量转发到应用程序服务器。您也可以使用其他Web服务器,例如lighttpdnginx。对于sinatra应用程序,您还可以查看Phusion Passenger,即mod rails,即mod rack,理论上适用于任何rack应用程序,尽管我只在Rails上使用过它。
如果你再深入了解一下,你会发现有各种不同的方案来将流量从Web服务器转发到应用服务器,但是这种操作的基本机制总是归结为拥有一个监听端口80的Web服务器,使用基于名称的虚拟主机来将流量转发到相应的应用程序。

3

多年来,我一直在使用各种独立服务器(例如AllegroServe)进行此类工作。我发现最好的方法是:

  • 在不同的非特权端口(如8080)上运行每个服务器
  • 在80端口上运行pound(或Nginx等),并配置将请求映射到每个应用程序。

Pound很棒,配置非常简单(不像Nginx那样复杂)。它还可以为您执行SSL前置和HTTP过滤,减轻了应用程序的负担。


0

使用Passenger!http://modrails.com - 这是一个针对Apache和Nginx的插件,可以让您非常轻松地将Ruby应用程序作为虚拟主机运行。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接