Heim  >  Fragen und Antworten  >  Hauptteil

ruby-on-rails – Rails Nginx Passenger Bundle Wie funktionieren diese zusammen?

Ich würde gerne fragen, wie diese Leute arbeiten und für welche Teile sie jeweils verantwortlich sind

PHP中文网PHP中文网2712 Tage vor762

Antworte allen(2)Ich werde antworten

  • 巴扎黑

    巴扎黑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所需要的库了

    Antwort
    0
  • 大家讲道理

    大家讲道理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.

    对于两者的性能分析请参见Mongrel vs. Passenger vs. Unicorn

    Antwort
    0
  • StornierenAntwort