独立乘客,不需要HTTP Server?

问题描述

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

解决方法

        简短的答案是“是”,这的确是这样。基本上,独立乘客允许您通过
passenger start
运行应用程序,并且它在后台使用nginx来实际满足rails请求。 但是,将乘客独立运行作为唯一的Web服务器存在一个大问题。如果您要运行多个基于ruby的网站,则必须分别在单独的端口上运行它们,因为无法单独将请求独立代理给单个应用程序。 在我的环境中,我需要使用多个不同版本的ruby(而不仅仅是不同版本的rails)来运行多个站点。例如,我有一个站点运行带有Ruby Enterprise Edition的Rails 2.3.x,另一个站点运行有Ruby 1.9.2的Rails3.0.x。我将乘客独立版与单独的Nginx代理一起使用来解决此问题: 每个网站都独立运行乘客,我已将其配置为在本地UNIX套接字上侦听。我使用RVM来为我加载红宝石版本,所以我的
passenger start
命令有点长,但是看起来像这样:
cd /path/to/my/app; rvm use ree-1.8.7-2011.03@gemset; export 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 production --pid-file /path/to/my/app/shared/pids/passenger.pid
现在我的应用程序正在运行并在3点监听,我有了另一个在端口80上运行的Nginx实例,该实例仅使用简单的proxy_pass规则将请求分别发送到每个站点。 抱歉,很长的帖子,也许它的信息太多了……但是我发现这个组合确实很好用,并且我编写了一些不错的
init.d
样式脚本来启动我的独立乘客独立应用程序。 Nginx的内存使用率如此之低,以至于运行3个实例(每个站点1个,端口80 1个)并不需要任何费用。 希望这可以帮助!     ,        据我所知(http://www.modrails.com/documentation/Users%20guide%20Standalone.html)\“ Passenger Standalone \”本身就是一个Web服务器。   与Apache的Phusion Passenger和Nginx的Phusion Passenger不同,Phusion Passenger Standalone不需要外部Web服务器,它是自己的,因此非常容易上手。     

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...