想问一直这几者是怎么样的一种方式来工作的,他们又各自负责什么部分呢
我怎么没太看懂呢。 他们之间有什么内在的关系么? nginx 是 web 服务器。 passenger 是支持 ruby 的 web 服务器。 rails 是基于 ruby 的 web 框架。 bundle(准确的说是 bundler) 是 ruby 依赖管理工具。
不过我给你一个链接你可以看一下,我也不是好懂:http://www.zhihu.com/question/20062163
passenger 只能用于 rails 吗?
你给的那个链接说得基本都很对,但 passenger 不是服务器,只是个 module
#3 楼 @lb563 只要是支持 Rack 的 app 都可以跑在 passenger 下。
#5 楼 @dfang 何解?
“nginx 启动的时候会启动 Passenger,passenger 根据配置引导 rails 应用,rails 启动的时候会调用 bundle 加载 rails 应用所需的 gems”,说得非常清楚了!http://www.zhihu.com/question/20062163
我的理解: URL 资源发出 HTTP 请求-> nginx -> passenger-> rack ->rails
当我们在输入一个 URL 的时候,浏览器向服务器发送 HTTP 请求,中间会经过 web server(nginx),然后经过经过 nginx 的时候,会经过 passenger(application server),之后会经过 rack(处理 http 请求和 rails app 的接口),再到 rails app 的核心里面,routes,controller,model,view 这样的一个过程。