如何在Windows Server 2008上为Ruby on Rails应用程序提供服务?

我花了几个小时试图让Ruby on Rails在Windows服务器上运行,没有运气。

起初我尝试通过IIS7的FastCGI支持configuration一个testing应用程序,但是这个文档不是很好。 我一直在关注这个博客条目 , 这一个 , 这一个 , 这一个,但一切似乎缺less重大步骤,或已过时。 而且每篇文章都从rubyonrails.org链接回到这个不存在的Howto 。

我得到的感觉是,即使我能够做到这一点,IIS的FastCGI也不足以在生产环境中使用。

所以看起来我最好的select是在IIS中设置一个反向代理,使用ARR和UrlRewrite指向Apache和Mongrel / Passenger。 有没有其他人阻止在Windows堆栈上部署Rails应用程序? 我在正确的轨道上? 你能给我一个更好的想法如何configuration这个?

我相信Plesk已经使用不同的端口安装了在这个服务器上运行的Apache / Tomcat的一个实例,所以添加另一个虚拟主机应该不难; 最难的部分似乎是通过IIS设置反向代理。


附录

自发布以来,我开始构build一个运行Linux的虚拟服务器,并使用Apache, Passenger和Ruby Enterprise Edition来为我们的Rails产品提供服务。

Linux是如此简单,便宜和可靠的select,试图将Rails的方块钉入Windows / IIS的圆孔是愚蠢的任务。

唯一可能的例外是如果你的Windows环境。 支持Java,你可以使用JRuby。 根据所有帐户,它是更好的Ruby实现之一。 否则,放弃并保存你的理智。

保存你的理智! RoR for Windows 2008还没有。 似乎事情几乎没有赶上Windows 2003.请留意从微软的IIS的IronRuby。 这只是没有煮熟,但。

在此之前,find一个TEMPORARY解决scheme。 使用mongrel并安装mongrel_service的预发布版本以使其与W2K8一起工作:

http://groups.google.com/group/comp.lang.ruby/browse_thread/thread/1adf2a73c75c2884/38267c06198e282e?show_docid=38267c06198e282e

我这样做是为了让Redmine工作,现在看来是最稳固的解决scheme。 我能够恢复我的一些理智。 我已经尝试了所有你发现的文章和更多。 即使尝试烹饪IronRuby自己,并得到它与RoR的基本知识,但与Redmine失败。 Mongrel工作非常快,不知道它是否可以扩展。

在Windows上部署ROR rails应用程序的最佳方法是使用glassfish gem的jruby。 这个设置使得使用反向代理很容易代理对glassfish服务器应用程序的请求。 实际上,我正在为我的博客撰写这样一个任务的指示,并使用以下博客文章中的信息作为跳板。

http://danielhill.com.au/blog/2009/04/running-redmine-on-windows-with-jruby-on-rails-and-glassfish/

因为我在Windows 2003和iis6,我使用托pipe融合作为反向代理。

为什么不使用virtualbox或vmware运行linux操作系统的虚拟化实例?

以下是rubyonrails.org文章中的Howto链接,该文章在您提到的所有文章中都被打破:

http://oldwiki.rubyonrails.org/rails/pages/HowToConfigureIIS7

看起来他们移动或开始了一个新的维基服务器,并没有打扰链接到旧的,或某些。

本教程说使用旧版本的ruby(1.8.6),当最新版本(1.9.x)应该是更快,更快。 我没有读完整篇文章,但是除了技术上的问题之外,一定要使用最新版本的ruby来获得最佳性能。

我在同一条船上 开始与FastCGI,并有问题。 改变了方向,并尝试ARR,但从来没有能够find坚实的文件,并试图导致失败(一个在接近灾难的东西)。

我真的降落在这个,因为我打算再次尝试与ARR这一次。 我会说,以前我用Apache来服务RoR,而且运行的很好。 在我最后一个需要IIS的环境中,因为ASP.NET应用程序,我使用Apache来指导我用Apache托pipe的静态内容,用IIS托pipe的.NET应用程序和托pipe在一组mongrel实例上的rails应用程序之间的stream量。 这个设置对我来说工作得非常好,但是现在我正在使用一个主要目的是IIS 7.5托pipe的.NET网站的环境,而且我已经对可用的信息量非常的失望。