我最近将一个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的优点和缺点是什么?
答案 0 :(得分:0)
答案 1 :(得分:0)
将NGINX
和Passenger
用于生产环境与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/以获取所有这些列表。它还可以在崩溃时重新启动应用程序,这也是一个很大的好处。