Heim > Fragen und Antworten > Hauptteil
Ich würde gerne fragen, wie diese Leute arbeiten und für welche Teile sie jeweils verantwortlich sind
巴扎黑2017-05-16 17:32:23
Ngnix是一个proxy server, 设置监听端口(80), 编码方法(gzip),错误网页在哪里(402, 403, 404),负责把request分给workers
Passenger/Unicorn是application server, 坐在proxy server上面。每个proxy一般有好几个application servers作为workers,负责接受把request高速给web application(比如rails),一般appication server能处理几千个requests每秒
Rails application runs inside passenger/unicorn.
从nginx到passenger到rails, 完成了一个request的cycle
bundle是ruby的package manager。就像python的easy_install, pypi。每个application,可以有个Gemfile, 里面可以写明你要的library的版本,然后别的人只要bundle install就能安装这个application所需要的库了
大家讲道理2017-05-16 17:32:23
引用于略晓网 张志回答: http://luexiao.com/questions/33136760...
Bundler主要是用来处理rails application的以来关系,同时使得每一个rails applicaton之间的环境相互独立,
Bundler的出现之前,大多使用gemset来管理gem包,Bundler出现之后,由于其易用,方便,为很多rails开发者使用,现在比较常用的方法是用Bundler来管理Gem包,用rvm来管理ruby版本.
Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,其处理静态链接性能优越,补充一下grid-fs模块,其对Mongodb提供了良好的支持,而且容易配置:
location /gridfs/ { gridfs my_app field=filename type=string; mongo 127.0.0.1:27017; }
passenger主要用来管理Rails进程,不过对于passenger接触的不是很多,平时用的都是Unicorn。
关于处理流程和协作:
引用自Github
nginx sends requests directly to the Unicorn worker pool over a Unix Domain Socket (or TCP, if you prefer). The Unicorn master manages the workers while the OS handles balancing, which we’ll talk about in a second. The master itself never sees any requests.