【问题标题】:How to deploy a non-http EventMachine based service on Passenger如何在Passenger上部署基于非http EventMachine的服务
【发布时间】:2013-11-23 05:54:49
【问题描述】:

有一些示例如何部署基于 EM 的服务由Passenger 支持的普通HTTP 服务,例如EventMachine and Passenger。 HTTP 组件由 HTTP 服务(nginx、apache)激活,由 Passenger 托管/监控,然后该激活的组件可以启动 EM 处理。

但是,我正在研究如何部署仅基于 EM 的服务(UDP 服务器)。确实响应 HTTP 的东西,所以它不存在于整个 Apache/Nginx/Passenger 环境中。

通常答案是“启动您的进程并启动 EM 循环”,但我不想错过 apache/nginx/passenger 带来的好处(初始化、启动、配置、日志记录、资源监控)。在 init.d 中放置一个 'ruby udp_server.rb' 似乎有点原始,并且容易发生现实世界的部署灾难(失控进程等)。

【问题讨论】:

    标签: ruby-on-rails apache nginx passenger eventmachine


    【解决方案1】:

    如果您可以为每个 apache 进程运行一个单独的 EM 反应器,您可以简单地在初始化程序中生成它,如下几行:

    https://gist.github.com/eatenbyagrue/1338545

    如果您需要 EM 服务是每台服务器 1 个,那么您需要将其包装为一个守护进程,并可能通过 init.d 脚本或上帝运行它,请参阅

    https://www.ruby-toolbox.com/categories/daemonizing https://github.com/mojombo/god

    或者,选择一体式部署解决方案,例如 Torquebox (http://torquebox.org/),它内置支持运行和管理长期运行的服务

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-03-14
      • 2023-01-20
      • 2015-11-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多