轨道生产环境的最佳操作系统,服务器等设置
有配置Rails的服务器很多很多不同的方式。我不知道是否有这样的事情作为'理想'的配置。我会告诉你我是如何配置服务器的,以及为什么。
操作系统:Linux,任何分布。
这是唯一有意义的服务器平台。
Ruby社区以Linux为中心,但BSD也是一个不错的选择。我对Linux很满意。
OSX是一个很棒的开发平台,但额外的成本并不能真正为您在服务器端购买任何Linux上无法获得的东西。而苹果正在逐步淘汰Xserve平台,所以有可能在那里没有未来。 Don't even think about using Windows。
Web服务器:Apache + Phusion Passenger
我建议Apache的,因为它是到处。每个人都知道。获得支持非常简单。
Phusion Passenger可能是最容易上手的应用程序服务器。这里有一个示例VirtualHost配置:
<VirtualHost x.x.x.x:80>
ServerName xxxx.com
DocumentRoot /var/www/xxxx/current/public
PassengerHighPerformance on
<Directory "/var/www/xxxx/current/public">
AllowOverride all
Options -MultiViews
</Directory>
AddOutputFilterByType DEFLATE text/html text/css text/plain text/xml application/json
AddOutputFilterByType DEFLATE image/jpeg, image/png, image/gif
</VirtualHost>
就是这样。 (而且大部分是不是绝对必要)
Ruby解释器:Ruby Enterprise Edition
我用这个来代替香草MRI,因为这是一个有点存取效率更高,从而使服务器上有很大的不同。它也与Passenger整合。
REE的一个缺点是它基于1.8.7
。您可能需要使用1.9.2
,因为它具有显着的性能优势。
宝石管理:RVM
RVM,您可以创建针对不同的应用沙盒宝石的环境中,如果有版本冲突。强烈建议您的开发环境。
部署系统:Capistrano
如果你不使用Capistrano的,你应该。这将是您可以为生产部署做的最大的节省时间。如果问题存在,它也会回滚到以前的版本。
您还应该安装ExceptionNotifier。如果生产服务器上存在异常情况,您应该了解它。
我也强烈建议检出NewRelic RPM进行分析。即使免费版本提供了一些有用的信息。
很好的答案。 nginx越来越受欢迎,但我认为你对apache的论点是有道理的。只有我可能会问的是,如果我们在谈论轨道3,MRI 1.9.2可能是一个更好的选择,然后再见。但是1.8.7的ree是一个没有道理的人。 – 2010-11-10 04:40:10
BSD??? – tchrist 2010-11-10 04:40:41
@tchrist touche! BSD也是一个非常好的服务器。对不起,Linux的盲目。 – 2010-11-10 04:47:51