AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 44334
Accepted
Adam Lassek
Adam Lassek
Asked: 2009-07-23 15:18:03 +0800 CST2009-07-23 15:18:03 +0800 CST 2009-07-23 15:18:03 +0800 CST

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

  • 772

在过去的几个小时里,我一直试图让 Ruby on Rails 在 Windows 服务器上运行,但没有成功。

起初我尝试通过 IIS7 的 FastCGI 支持配置一个测试应用程序,但是这方面的文档不是很好。我一直在关注这个博客条目,还有这个,这个,还有这个,但是一切似乎都缺少主要步骤,或者已经过时了。并且每篇文章都不断地从 ruby​​onrails.org 链接回这个不存在的Howto 。

我得到的感觉是,即使我设法完成这项工作,IIS 的 FastCGI 也不足以在生产环境中使用。

所以看起来我最好的选择是在 IIS 中设置一个反向代理,使用ARR和 UrlRewrite 指向 Apache & Mongrel/Passenger。还有其他人坚持在 Windows 堆栈上部署 Rails 应用程序吗?我在正确的轨道上吗?你能给我一个关于如何配置它的更好的想法吗?

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


附录

自从发布这篇文章以来,我继续构建一个运行 Linux 的虚拟服务器,并使用 Apache、Passenger和Ruby Enterprise Edition为我们的 Rails 产品提供服务。

Linux 是如此简单、便宜和可靠的选择,以至于试图将 Rails 的方形钉塞进 Windows/IIS 的圆孔是一件愚蠢的事。

唯一可能的例外是您的 Windows 环境。支持Java,可以使用JRuby。无论如何,它是更好的 Ruby 实现之一。否则,放弃并保存你的理智。

windows-server-2008 apache-2.2 iis-7 ruby-on-rails
  • 5 5 个回答
  • 4943 Views

5 个回答

  • Voted
  1. Best Answer
    TruMan1
    2010-05-09T08:38:27+08:002010-05-09T08:38:27+08:00

    拯救你的理智!!!Windows 2008 的 RoR 还没有。似乎Windows 2003 几乎没有赶上。请留意Microsoft 的IronRuby for IIS。只是还没有煮熟。

    在那之前,找到一个临时解决方案。使用 mongrel 并安装 mongrel_service 的预发布版本以使其与 W2K8 一起使用:

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

    我这样做是为了让 Redmine 正常工作,这似乎是目前最可靠的解决方案。我能够恢复一些理智。我已经尝试了您找到的所有文章等等。甚至尝试自己烹饪 IronRuby 并让它与 RoR 基础一起工作,但在 Redmine 上失败了。Mongrel 工作并且非常快,但不确定它是否可扩展。

    • 6
  2. rip747
    2009-08-16T18:40:39+08:002009-08-16T18:40:39+08:00

    在 Windows 上部署 ROR rails 应用程序的最佳选择是将 jruby 与 glassfish gem 一起使用。这种设置使得使用反向代理将向 glassfish 的请求代理到服务器应用程序变得非常容易。实际上,我正在我的博客上编写此类任务的说明,并使用以下博客文章中包含的信息作为垫脚石。

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

    因为我使用的是 Windows 2003 和 iis6,所以我使用 Managed Fusion 作为反向代理。

    • 2
  3. trustfundbaby
    2009-08-21T13:43:51+08:002009-08-21T13:43:51+08:00

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

    • 2
  4. brad.lane
    2009-07-23T18:20:13+08:002009-07-23T18:20:13+08:00

    这是 ruby​​onrails.org 上 Howto 文章的链接,在您提到的所有文章中都被破坏了:

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

    看起来他们移动或启动了一个新的 wiki 服务器,并且没有费心链接到旧的,或类似的。

    该教程说要使用旧版本的 ruby​​ (1.8.6),而最新版本 (1.9.x) 应该要快得多。我没有阅读全文,但除非有任何技术问题,否则请务必使用最新版本的 ruby​​ 以获得最佳性能。

    • 1
  5. Eric H
    2010-03-08T13:20:14+08:002010-03-08T13:20:14+08:00

    我在同一条船上。开始使用 FastCGI 并遇到问题。改变了方向并尝试了 ARR,但始终无法找到可靠的文档,并且两次尝试都导致失败(其中一次更接近灾难)。

    我实际上是这样做的,因为我将再次尝试使用 ARR 进行此操作。我会说,在过去,我使用 Apache 来为 RoR 服务,并且效果很好。在我上一个因 ASP.NET 应用程序而需要 IIS 的环境中,我使用 Apache 在我的 Apache 托管的静态内容、我的 IIS 托管的 .NET 应用程序以及我的一组 mongrel 实例上托管的 rails 应用程序之间引导流量。该设置对我来说效果很好,但现在我正在使用一个主要目的是托管在 IIS 7.5 上的 .NET 网站的环境,我对可用于正确设置的信息量感到非常失望.

    • 0

相关问题

  • 在 Linux Xen VPS 上优化 Apache 和 MySQL

  • 从 2003 年迁移到 2008 年 Microsoft 群集技术

  • mod_rewrite 不转发 GET 参数

  • 有什么理由使用 Windows Server 2003 而不是 Server 2008?

  • 是否可以在单个 W2008 服务器上安装 Exchange Server?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve