【问题标题】:Ruby (off the Rails) HostingRuby(off the Rails)托管
【发布时间】:2010-12-19 14:27:06
【问题描述】:

很多人都在这个网站上询问过 Rails 托管,但我对事物的后端不够熟悉,不知道是否有区别。

我想托管一些 Ruby CGI 'webservices',基本上只是从 POST 请求中获取参数、访问 MySQL 数据库并返回数据的 ruby​​ 方法。

我看过 RoR,这似乎有点矫枉过正,据我所知,这是为了加快基于数据的 CRUD 网站的开发,而这根本不是我正在做的事情。

所以我的问题是,这会影响我选择的托管服务提供商吗?有没有人推荐一个好的 Ruby 主机来进行 CGI 操作?我不熟悉 FastCGI、mod_ruby、Passenger、Mongrel 等以及它们对性能、可扩展性等的意义。我只想以相当好的性能托管我的 ruby​​ 脚本,并且那里(和这里)的所有信息似乎专注于轨道。

【问题讨论】:

    标签: ruby hosting


    【解决方案1】:

    我想你可能想看看Rack。它允许你做你正在谈论的事情,并摆脱了 Rails 或 Merb 等框架的重量。机架应用程序可以托管在Heroku 之类的地方。

    【讨论】:

    • Heroku 看起来很有趣,但我在 Windows 上遇到了一个问题,使用 'heroku create' 命令告诉我'No ssh public key found in ...您可能需要指定密钥文件的完整路径.'
    • 我也没有使用过 Windows 版本,但我会支持 Heroku。在您准备好升级之前,他们提供免费版本。
    【解决方案2】:

    首先,如果您想要轻量级,Sinatra 通常是我的首选。与rack 和Passenger 配对以获得最佳效果。这不是 CGI,但实际上,CGI 很少能与 Ruby 相提并论。

    这里是“Hello World!”主页上的 Sinatra 应用程序:

    require 'rubygems'
    require 'sinatra'
    get '/hi' do
      "Hello World!"
    end
    

    很难比这更轻量级了。

    对于提供者,任何支持Passenger (mod_rack) 的人都应该能够处理Sinatra。我个人是Slicehost 的忠实粉丝,但他们是VPS 主机,这意味着您需要能够自己安装和管理整个堆栈。如果您不介意为基础设施支付一点额外费用,Heroku 使安装和部署变得非常简单,只要您的需求不超过他们提供的(听起来他们不会)。万一您只使用 5MB 或使用像 Amazon RDS 这样的外部存储机制,Heroku 实际上可能对您免费。

    更新:

    • Passenger 是一个 Apache 模块,它允许 Rack 应用程序在 Apache 内部运行。
    • Rack 是一个中间件层,将 Web 服务器和 Web 框架相互分离。这允许 Web 框架在任何有适配器的 Web 服务器上运行。
    • Sinatra 是一个运行在 Rack 之上的轻量级 Web 框架。

    一旦安装了 Passenger 和 Rack (gem install rack, gem install passenger),您只需要编辑 Apache vhost 以指向您的 Sinatra 应用程序的 config.ru 文件,并根据 Passenger docs 和创建所需的目录你会很高兴的。

    【讨论】:

    • 对于菜鸟的回复很抱歉,但这是我在 .NET 之外的第一次 CGI 尝试——为什么我需要 Sinatra(或 Rack/Passenger/Camping)?我不能将 .rb 文件放入 cgi-bin 文件夹,使用“require cgi”,然后读取 POST 变量,运行我的代码并发回响应吗?
    • 当然,只要您不介意持续的启动/关闭成本。如果您只是写“hello world”,这没什么大不了的,但是您说您需要写入数据库。这意味着您需要在每个请求上加载和卸载数据库适配器。在 Ruby 中,数据库适配器等库的加载时间往往很重要。坦率地说,Sinatra 的设置时间可能比 CGI 多 5 分钟,而且更易于使用。如果你在这个项目上花费了一个多小时,我保证 Sinatra 会为你节省时间,即使是在学习曲线上。
    • 嗯...我应该注意...对我来说这是 5 分钟的设置时间。第一次可能会更长,因为您还没有安装Passenger。
    • 好的,关于性能的信息很好。但我仍然不明白乘客、机架和 sinatra 的功能分别是什么。我已经阅读了文档,但我真的不知道如何将它们用作 cgi 库的替代品
    • a note ref heroku 对小型应用程序免费 - heroku 仅使用 1 个 dyno 空闲应用程序。他们不考虑生产。数据起价为 9 美元 - 替代数据选项的成本通常相当。并不是说 heroku 不好 - 它只是不是免费的。
    猜你喜欢
    • 2011-04-14
    • 1970-01-01
    • 1970-01-01
    • 2011-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-24
    相关资源
    最近更新 更多