【问题标题】:Deploying Compojure/Sinatra Applications部署 Compojure/Sinatra 应用程序
【发布时间】:2010-11-07 22:05:42
【问题描述】:

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

【问题讨论】:

    标签: ruby clojure sinatra compojure


    【解决方案1】:

    使用在端口 80 上运行的网络服务器(例如 Apache),并使用 virtual hosts 将流量定向到正确的应用服务器。所以基本上你会在不同的端口上运行每个应用程序服务器(jetty/mongrel 等),然后在每个虚拟主机中使用不同的配置来使用 mod proxy 之类的东西将流量转发到应用程序服务器。您可以使用不同的 Web 服务器,例如 lighttpdnginx。对于 sinatra 应用程序,您还可以查看 Phusion Passenger, a.k.a mod rails, a.k.a mod rack,理论上它适用于任何机架应用程序,尽管我只在 Rails 中使用过它。

    如果您进一步研究它,您会发现有多种方案可以将流量从 Web 服务器转发到应用程序服务器,但做这种事情的基本机制总是归结为拥有一个 Web 服务器侦听端口 80,该端口使用基于名称的虚拟主机,然后将流量转发到相应的应用程序。

    【讨论】:

      【解决方案2】:

      多年来,我一直在使用各种独立服务器(例如 AllegroServe)做这种事情。我发现最好的方法是:

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

      Pound 很棒,而且配置非常简单(不像 Nginx)。它还将为您执行 SSL 前端和 HTTP 清理,从而减轻您的应用程序的负担。

      【讨论】:

        【解决方案3】:

        使用乘客! http://modrails.com - 它是 apache 和 nginx 的插件,可让您(非常)轻松地将 ruby​​ 应用程序作为虚拟主机运行

        【讨论】:

          猜你喜欢
          • 2015-09-02
          • 2011-09-17
          • 2012-04-11
          • 1970-01-01
          • 1970-01-01
          • 2013-09-28
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多