Ruby这门语言并不难,Ruby on Rails这个玩意要是用的话也不难,但是如果要是想从底层了解rails应用的话,尤其是搞清楚rails应用是怎样在生产环境中运行起来,能正常的提供http访问需求,那么有很多琐碎的概念需要理解。
接触过rails的人应该都通过这些概念:Apache/Nginx, Mongrel, Passenger, WEBrick, Capistrano, Rails应用,那么rails应用是怎么样运行起来的?上述的那些组件之间的关系是怎么样的?他们是如何协作完成一个基本的http服务器的?
关于这些,我查了很多资料,最后的焦点聚集在这样一个概念上:web server与app server的关系。去谷歌上面查了很多资料,有很多比较好的帖子讲的比较好,尤其是下面这一篇,现在转载一下。
1. 问题: Ruby on Rails server options
答案:http://stackoverflow.com/questions/4113299/ruby-on-rails-server-options
注:作者是Passenger的作者之一 Hongli
2. 问题:what is the responsibility of ngnix or apache in rails application?
答案: http://stackoverflow.com/questions/19733205/what-is-the-responsibility-of-ngnix-or-apache-in-rails-application/36591647#36591647
3. passenger的官网,关于passenger的架构的介绍
https://www.phusionpassenger.com/documentation/Design%20and%20Architecture.html