Rails部署,捆绑exec rails s vs Nginx和Passenger

时间:2018-06-13 14:01:19

标签: ruby-on-rails amazon-web-services nginx amazon-ec2 passenger

我最近将一个rails应用程序部署到AWS上的ec2实例。这是我第一次像这样进行部署。

我正在阅读,大多数消息来源似乎建议使用Nginx和Passenger部署rails。

现在我运行bundle exec rails s -p 80 -b 0.0.0.0,当我转到我的ec2网址时,我的应用运行良好。

我想知道使用Nginx和Passenger运行bundle exec rails s -p 80 -b 0.0.0.0 VS的优点和缺点是什么?

2 个答案:

答案 0 :(得分:0)

  1. Nginx和乘客将帮助实现负载平衡,在这里你可以提供更多的服务请求。
  2. 如果乘客死亡,nginx将开始新乘客。
  3. 对于部署nginx和乘客是很好的方式,启动服务器与' rails s'和端口号有利于开发而不是部署。
    1. nginx提供了Https和其他更多选项。
    2. Web服务器和应用程序服务器是部署的良好组合。

答案 1 :(得分:0)

NGINXPassenger用于生产环境与rails s相比,有很多优势。

如果您为WEBrick::HTTPServer使用标准rails s,您会注意到性能提升,因为NGINX和Passenger已针对此类事件进行了高度优化。

NGINX提供了几个配置文件,您可以在其中控制虚拟主机并将其用作反向代理服务器(http://nginx.org/en/docs/beginners_guide.html)。它在提供静态资产方面非常快。如上所述 - 它提供了几个选项(负载平衡,gzip选项,SSL和非安全服务器块设置,缓存,代理请求)。

将NGINX与Passenger一起使用非常高效,因为您可以在NGINX配置中包含Passenger,以使用Passenger所需的一组选项自动启动您的服务器。 Passenger提供了几种可以使用的配置,例如,应用程序的最大/最小分叉进程/线程数量以及RAM限制。访问https://www.phusionpassenger.com/library/config/nginx/reference/以获取所有这些列表。它还可以在崩溃时重新启动应用程序,这也是一个很大的好处。