gpt4 book ai didi

apache - Passenger Standalone,不需要HTTP Server?

转载 作者:行者123 更新时间:2023-12-02 11:43:11 24 4
gpt4 key购买 nike

使用 Passenger Standalone(由 Nginx 核心提供支持)是否意味着我们根本不需要像 Apache 或 Nginx 这样面向 Web 的 HTTP 服务器?

最佳答案

简短的回答是"is",这确实是它的工作原理。基本上,passenger Standalone 允许您通过 passenger start 运行应用程序,并且它在幕后使用 nginx 来实际服务 Rails 请求。

然而,将乘客独立运行作为唯一的网络服务器存在一个大问题。如果您想运行多个基于 Ruby 的网站,则必须在单独的端口上运行它们,因为没有办法通过 Passenger 本身将请求代理到各个应用程序。

在我的环境中,我需要使用多个不同版本的 ruby​​(不仅仅是不同版本的 Rails)运行多个站点。例如,我有一个站点运行带有 Ruby Enterprise Edition 的 Rails 2.3.x,另一个站点运行 Rails 3.0.x(运行 Ruby 1.9.2)。我使用 Passenger Standalone 和单独的 Nginx 代理来解决这个问题:

  • 每个网站都独立运行乘客,我已将其配置为监听本地 UNIX 套接字。我使用 RVM 来为我加载 ruby​​ 版本,因此我的 passenger start 命令有点长,但看起来像这样:

    • cd/path/to/my/app; rvm使用ree-1.8.7-2011.03@gemset;导出 GEM_HOME=/usr/local/rvm/gems/ree-1.8.7-2011.03@gemset;/usr/local/rvm/gems/ree-1.8.7-2011.03@gemset/bin/passenger start -d -S/tmp/mysite.com.sock -e 生产 --pid-file/path/to/my/应用程序/共享/pids/passenger.pid
  • 现在我的应用程序正在 /tmp/mysite.com.sock 上运行并监听,我有另一个在端口 80 上运行的 Nginx 实例,该实例仅使用简单的 proxy_pass 规则来发送请求分别到每个站点。

很抱歉这篇文章很长,也许信息有点太多了...但我发现这个组合效果非常好,而且我写了一些不错的 init.d 风格用于启动我的个人乘客独立应用程序的脚本。 Nginx 内存使用量低得惊人,运行 3 个实例(每个站点 1 个,端口 80 上 1 个)实际上不需要任何成本。

希望这有帮助!

关于apache - Passenger Standalone,不需要HTTP Server?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6362906/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com