使用Heroku + Postgres,我还需要Nginx吗?

时间:2014-08-22 04:29:32

标签: ruby-on-rails nginx

我是rails的新手,我的朋友开发了一个现有的rails项目。 他正在使用 Web服务器Nginx +独角兽,数据库:MySQL 另一方面,我决定使用 Heroku + Postgresql + Unicorn 。我还需要 nginx 进行设置吗?对我有任何参考? 我做了一些研究,我不确定我是否正确理解它,Nginx是一个Http服务器而Unicorn是一个Web应用服务器,看来我们应该将它们全部包含在生产中,我不太确定,任何参考或建议? 。非常感谢您的回答!

2 个答案:

答案 0 :(得分:0)

你不必 - 如果未指定Heroku将默认使用WEBrick,但他们建议使用unicorn作为Web服务器(https://devcenter.heroku.com/articles/ruby-default-web-server)以提高性能,因为WEBrick是单线程单进程并且可能会在高负荷下破裂。

尝试将gem 'unicorn'添加到您的Gemfile中。

答案 1 :(得分:0)

nginx是存储和提供文件的实际HTTP服务器(机器 - 虚拟机或无机器)。 Heroku在他们的服务器上提供这些文件的托管,这意味着您的问题的HTTP服务器部分已经解决。

要拥有一个功能齐全的应用程序,您需要一个存储和提供文件的HTTP服务器一个应用程序服务器(有点像应用程序的容器),它支持提供动态页面(在我们的案件通过红宝石代码)。由于Heroku负责HTTP服务器,您只需要担心应用程序服务器。

@johnheroy 所述,如果没有指定任何内容,Heroku将默认使用WEBrick - 但没有任何东西阻止您使用Puma或多处理Unicorn等多线程服务器。你甚至可以让Puma运行多处理和多线程(你甚至可以使用Passenger - 一个更混合的HTTP / Application Server),这就是我们在团队中所做的。

建议阅读:Puma running on Heroku