【发布时间】:2015-04-15 13:06:29
【问题描述】:
我想使用 Puma 和 HTTPD 来为我的 Rails 应用程序提供服务。据我所知,人们做这种事情的例子并不多。我知道 nginx 比 HTTPD 有一些好处,Passenger 让很多事情变得简单,但是有理由不使用 Puma/HTTPD?
我浏览了一些在线示例,并整理了一个我喜欢的 HTTPD 配置块,它似乎工作正常(尽管我没有进行任何性能测试)。我错过了什么吗?这似乎比大多数 Puma/nginx 或Passenger/HTTPD 设置更容易/更简单,这让我有点担心。
<VirtualHost *:3008>
DocumentRoot MY_RAILS_ROOT/public
ProxyPass /favicon.ico !
ProxyPass /robots.txt !
ProxyPassMatch ^/(404|422|500).html$ !
ProxyPass /assets/ !
ProxyPass / http://127.0.0.1:9292/ # Puma bind address
ProxyPassReverse / http://127.0.0.1:9292/
</VirtualHost>
【问题讨论】:
-
在我们的项目中,我们有 varnish->nginx->puma 堆栈,它工作得很好。 Nginx 总体上更健壮、更快、更强大,而且它的内存消耗比 httpd 少。无论如何,你真的需要 HTTPD 吗?:) 阅读有关 httpd(模块化)和 nginx(编译的模块)的架构。但如果性能不是问题,而且你很了解 httpd,请使用它:) 编辑:考虑在 unix sock 模式下启动 puma,它会获得一些性能提升。
标签: ruby-on-rails apache puma