新手问题 关于 Web 服务器和应用服务器作用

easonlovewan · 2015年08月13日 · 最后由 easonlovewan 回复于 2015年08月14日 · 3620 次阅读

网上看了好多资料还没没看明白 web 服务器和应用服务器对于一个应用具体干了什么? 就拿 Nginx 和 Passenger 来说说 web 服务器和应用服务器在 rails 应用中起了什么作用!!!求大神

web 服务器解决静态问题,应用服务器解决动态问题,各司其职。不过也有一些一体化的,比如:IIS,Passenger 等。

#1 楼 @winnie 你说的动态和静态是指???

#2 楼 @easonlovewan 静态 比如说 public 下的 html。动态就是 rails 动态渲染的页面

#3 楼 @zhulinpinyu 知道了!感谢!!!

这样来说:Passenger 和 Rails(也就是我们的代码打交道)Nginx 一般和 Passenger 打交道(但是偶尔一些不需要 Passenger 处理的事情 Nginx 就自己去拿资源)

#5 楼 @so_zengtao Passenger 可以解决动态和静态的,为什么还要 Nginx 呢?你所说的 Passenger 处理不了哪种问题?

#6 楼 @easonlovewan 术业有专攻 其实你直接在服务器上直接 rails s RAILS_ENV=production 也是可以的

这个帖子里有讨论 rails web server 的。 #35 楼@poshboytl回复里有个文章Ruby Web 服务器:这十五年说到了:Mongrel 的定位,rack 等。就如 @so_zengtao 所说:术业有专攻

(用户) - Web Server - App Server - App

这里 Web 服务器主要负责接待客户,而 App 服务器主要用来加载 App。 Web 服务器被设计成能适应不同种类的客户端访问,不论是网络快的或者慢的,不论是人流少的还是人流多的,都能工作。 App 服务器则相反,主要是和 App 打交道,根据跑的应用的具体情况来加载应用。 最后中间用一个标准接口互联。

我打个比方吧。 比如你家里要用电,电厂 (App) 要发电。 电厂有各种不一样的,风电水电火电核电都有,电压功率都各不同。 这时候就需要在出厂的时候加一个变压器,把电的参数调整到一样,这样才能接入电网。(这就相当于 App Server) 同理客户这边有高楼有平房,有企业有家用,电压功率也都各不同。 这时候就需要在小区或者企业附近加一个变压器,分路出来给各家用。(这就相当于 Web Server) 而变压器与变压器之间则是很简单的标准化电网。(也就是 WebSvr 与 AppSvr 之间的那个统一化的 HTTP 协议)

需要 登录 后方可回复, 如果你还没有账号请 注册新账号