问题标签 [mongrel]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
5616 浏览

windows - Howto - 在 mongrel 上运行 Redmine 作为 Windows 上的服务

我在 Mongrel 上使用 Redmine 作为项目经理,并使用批处理文件 (start-redmine.bat) 在 mongrel 中启动 redmine。我的设置有 2 个问题: 1. 我的服务器上有一个正在运行的 IIS,它占用了 HTTP 端口 (80) 2. 必须定期检查 start-redmine.bat 以查看它是否在由以下原因引起的重新启动后停止Windows 更新服务。

对于第一个问题,我别无选择,只能在 3000 之类的端口上运行 mongrel,对于第二个问题,我必须创建一个 windows 服务,该服务在 windows 启动时在后台自动运行;麻烦来了!

据我所知,至少有 3 种方式可以将 redmine 作为服务运行;他们都不能满足关于这个主题的性能观点。您可能会阅读有关 如何配置 Rails 应用程序(redmine)以在 Windows 上作为服务运行的信息?

我都试过了。设置此类服务的最简单方法是使用 mongrel_service 方法;在 3 行命令中你就完成了。但性能明显低于运行该批处理文件...


现在,我想向您展示我的方法:

首先假设我们已经将 ruby​​ 安装到c:\ruby并且我们已经发出命令gem install mongrel将 mongrel gem 安装到c:\ruby\bin 另外,假设我们已经安装了 Redmine进入像c:\redmine这样的文件夹;我们的 PATH 环境变量中有 ruby​​ 的路径(即c:\ruby\bin)。

现在从微软网站下载并安装 Windows NT Resource Kit Tools。打开 Resource Kit 附带的命令行工具(从开始菜单)。使用 instsrv 安装一个名为 Redmine 的虚拟服务,使用以下命令:

“[path-to-instsrv.exe]\instsrv” Redmine “[path-to-srvany.exe]\srvany.exe”

在我的情况下(这是默认情况)是这样的:

"C:\Program Files\Windows Resource Kits\Tools\instsrv" Redmine "C:\Program Files\Windows Resource Kits\Tools\srvany.exe"

现在创建批处理文件。打开记事本并将这些说明粘贴到其中,然后将其保存为“ c:\redmine\start-redmine.bat

@echo off
cd c:\redmine\
mongrel_rails start -a 0.0.0.0 -p 3000 -e production

现在我们需要配置我们之前创建的虚拟服务。从这里开始注意您在做什么,否则您可能会损坏您的 WINDOWS。要配置该服务,请打开 Windows 注册表编辑器(开始 -> 运行 -> regedit)并导航到此节点:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Redmine

右键单击“Redmine”节点并使用上下文菜单,创建一个名为Parameters (New -> Key) 的新键 右键单击​​“Parameters”并创建一个名为Application的字符串值属性。再次执行此操作并创建另一个名为AppParameters的字符串值。现在双击“应用程序”并将cmd.exe放入“值数据”部分。然后双击“AppParameters”并将/C“C:\redmine\start-redmine.bat”放入数值数据部分。

我们完成了!发出此命令以在 mongrel 上运行 redmine 作为服务:

网络启动Redmine

编辑:如果您要使用 Redmine 的邮件服务并且您有像 McAfee 这样的防病毒软件,请确保您告诉防病毒软件允许 ruby​​ 发送电子邮件,否则您将无法使邮件服务正常工作。

0 投票
1 回答
650 浏览

ruby-on-rails - 如何通过 Mongrel Web 服务器在 Rails 中指定文件路径

我有一个从 rails 加载 swf 文件 flaMovie.swf 的请求。swf 文件位于目录 /home/user1/railsproj/flash。

我在视图目录下有代码 index.rhtml 来显示 .swf 文件,

ID=flaMovie 宽度=250 高度=250>

当我运行代码时,我得到了错误,

ActionController::RoutingError (没有路由匹配 "/home/user1/railsproj/flash/flaMovie.swf" 与 {:method=>:get}): /vendor/rails/actionpack/lib/action_controller/routing.rb:1441:在recognize_path' /vendor/rails/actionpack/lib/action_controller/routing.rb:1424:in识别'/vendor/rails/actionpack/lib/action_controller/dispatcher.rb:170:in handle_request' /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:115:indispatch'/vendor/rails/actionpack/lib/action_controller/dispatcher.rb:126:in dispatch_cgi' /vendor/rails/actionpack/lib/action_controller/dispatcher.rb:9:indispatch'/usr/lib/ruby/ gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel/rails.rb:76:in process' /usr/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel/rails.rb:74:insynchronize'

我的 rails 项目位于 /home/user1/railsproj ,网络服务器是 Mongrel 网络服务器。

如何在 rhtml 文件中指定路径,以便 Mongrel 服务器能够定位到该文件?非常感谢,

0 投票
1 回答
1068 浏览

ruby - 运行我的 Sinatra 应用程序时,shotgun gem 和 msvcrt-ruby18.dll 出错

问候,

每次我对正在开发的 Sinatra 应用程序进行更改并尝试刷新浏览器(位于http://localhost:4567/)时,浏览器都会刷新,并且控制台窗口似乎会重新启动 WEB 砖服务器。问题是浏览器窗口中的内容没有改变。

我的一个朋友告诉我这是一个霰弹枪问题,并将我推荐给 rtomayko 的霰弹枪宝石:

http://github.com/rtomayko/shotgun

在这个页面上,我读到shotgun gem 基本上可以解决我的问题,允许对我的应用程序所做的更改在我刷新后显示在浏览器窗口中。所以我安装了shotgun gem。安装成功。要激活shotgun 功能,您必须在文件名前输入shotgun 。在这种情况下,我的 Sinatra 应用程序的文件名是shorter.rb

当我键入shotgun shorter.rb来运行我的 Sinatra 应用程序时,我收到此错误:

替代文字 http://lh6.ggpht.com/_83PkeFeVNNk/S-ymaYEgDUI/AAAAAAAAArE/rr7uJE3dRj4/shotgun_error.png

我还应该提到,在测试霰弹枪方法是否有效之前,我安装了杂种(我意识到我应该在这样做之前检查霰弹枪是否有效,因为安装杂种使这个问题变得复杂)。因此,除了收到上面的错误消息之外,我还从 Ruby.exe 获得了这个弹出窗口

替代文字 http://lh6.ggpht.com/_83PkeFeVNNk/S-ymaaWIZKI/AAAAAAAAArA/8qYCGUN8Wo4/msvcrt-ruby18.dll_error.png

我不知道msvcrt-ruby18.dll是什么,但我知道安装shotgun和/或mongrel会产生这个问题。

然后去哪儿?

谢谢,亚当

0 投票
1 回答
225 浏览

ruby - Ruby ActiveRecord + Mongrel 变慢了

我有这样的课:

它是一个服务器,我在另一端使用 ActiveResource 前端。

每个第 3 次请求都非常慢(大约 5 秒,第 1 次和第 2 次都可以,大约 0.01 秒)。Model.all.to_xml 中的问题(它是 ActiveRecord -> SQLite)。

为什么它太慢了?只有当我在 Mongrel::HttpHandler.. 中使用它时才会发生这种情况

总是很好用。

0 投票
3 回答
3308 浏览

ruby-on-rails - 在共享托管服务器上运行 Ruby on Rails 应用程序的问题

我在共享托管服务器上安装任何Ruby On Rails 应用程序时遇到问题。Mongrel 将 html 显示为所有页面的纯文本。任何应用程序都会出现此问题,即使我创建了一个测试空应用程序并添加了一个脚手架视图而不进行任何更改。

尝试将 cookie 放入响应标头时,Mongrel 似乎崩溃了。HTTP 标头看起来不完整,缺少 Content-type 和其他参数:

这是 mongrel.log 的输出

红宝石 1.8.7 轨道 2.3.8 杂种 1.1.5

这是测试页面的链接

有没有人见过这样的事情?

0 投票
1 回答
1065 浏览

controller - 2.3.8 和 Mongrel 的自定义 Rails 路线问题

我有一个名为“exposures”的控制器,它是通过脚本/生成脚手架调用自动创建的。脚手架页面工作正常。我在曝光控制器中创建了一个名为“测试”的自定义操作。当我尝试调用该页面(http://127.0.0.1:3000/exposures/test/1)时,我得到一个空白的白色屏幕,源代码中根本没有文本。

我在开发环境中使用 Rails 2.3.8 和 mongrel。development.log 中没有任何条目,用于打开 mongrel 的控制台出现以下错误:

您可能期望有一个 Array 的实例。评估 nil.split> D:/Rails/ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.8/lib/action_controller/cgi_process.rb:52:in dispatch_cgi' D:/Rails/ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.8/lib/action_controller/dispatcher.rb:101:indispatch_cgi' D:/Rails/时发生错误ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.8/lib/action_controller/dispatcher.rb:27:in dispatch' D:/Rails/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.2-x86-mswin32/bin/../lib/mongrel/rails.rb:76:inprocess' D:/Rails/ruby/lib/ruby/gems/1.8/gems/mongrel- 1.1.2-x86-mswin32/bin/../lib/mongrel/rails.rb:74:in synchronize' D:/Rails/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.2-x86-mswin32/bin/../lib/mongrel/rails.rb:74:inprocess' D:/Rails/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.2-x86 -mswin32/bin/../lib/mongrel.rb:159:在process_client' D:/Rails/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.2-x86-mswin32/bin/../lib/mongrel.rb:158:in每个'D:/Rails/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.2-x86-mswin32/bin/.. /lib/mongrel.rb:158:in process_client' D:/Rails/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.2-x86-mswin32/bin/../lib/mongrel.rb:285:inrun' D:/Rails/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.2-x86-mswin32/bin/../lib/mongrel.rb: 285:在initialize' D:/Rails/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.2-x86-mswin32/bin/../lib/mongrel.rb:285:in新的'D:/Rails/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.2-x86-mswin32/bin/../lib/mongrel.rb:285:inrun' D:/Rails/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.2-x86-mswin32/bin/../lib/mongrel.rb:268:in初始化'D:/Rails/ ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.2-x86-mswin32/bin/../lib/mongrel.rb:268:in new' D:/Rails/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.2-x86-mswin32/bin/../lib/mongrel.rb:268:inrun' D:/Rails/ruby/lib/ruby/gems /1.8/gems/mongrel-1.1.2-x86-mswin32/bin/../lib/mongrel/configurator.rb:282 :在run' D:/Rails/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.2-x86-mswin32/bin/../lib/mongrel/configurator.rb:281:in每个'D:/Rails/ruby/lib/ruby/gems/1.8/gems/ mongrel-1.1.2-x86-mswin32/bin/../lib/mongrel/configurator.rb:281:in run' D:/Rails/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.2-x86-mswin32/bin/mongrel_rails:128:in run' D:/Rails/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.2 -x86-mswin32/bin/../lib/mongrel/command.rb:212:in run' D:/Rails/ruby/lib/ruby/gems/1.8/gems/mongrel-1.1.2-x86-mswin32/bin/mongrel_rails:281 D:/Rails/ruby/bin/mongrel_rails:19:inload' D:/Rails/ruby/bin/mongrel_rails:19

这是 exposures_controller 代码:

聪明的读者会注意到“图表”动作。这就是我真正想要的工作,但如果我什至无法让测试操作正常工作,那么我确定我没有机会。

有任何想法吗?我已经重新启动了 mongrel 几次,没有任何变化。

这是 Rake 路由的输出(但我不认为这是问题所在。错误将以 HTML 错误响应的形式出现)。

在此先感谢您的帮助

-乔恩

0 投票
1 回答
580 浏览

ruby-on-rails - 如何在 Apache + Mongrel 应用程序中平衡负载

我想知道是否有人可以解释如何平衡 Rails 应用程序。

两个问题:

  1. 它甚至有助于让单独的 Rails 应用程序从同一个专用服务器中的同一个数据库中读取吗?

  2. 我了解 Apache 可以平衡负载安装一些额外的模块?我对吗?我们怎样才能做到这一点?(请提供假人的解释)

0 投票
2 回答
585 浏览

ruby-on-rails - Rails:在帖子参数中丢失引号

我正在向我的 Rails 站点添加全文搜索,并允许用户在搜索输入框中输入双引号。问题是双引号似乎被 Mongrel 过滤掉了,所以我从来没有在 params 哈希值中收到这些引号。我该如何防止这种情况发生?我正在运行 Rails 2.3.8。

[编辑:添加分析数据]

在 Firebug 中,我看到 post 参数用引号正确发布:

然而,在开发日志中,引号消失了:

处理 PostsController#search (for 127.0.0.1 at 2010-06-18 17:28:45) [POST] 参数:{"search_criteria"=>"great post", "action"=>"search", "authenticity_token"= >"xUaOc1IAyjQmKn1NGqBpPVaTBmD4ayPq/lUJsqJGCxY=", "控制器"=>"帖子"}

当我在控制器中记录 params[:search_criteria] 的内容和大小时,我得到:

[编辑:新发现] 当引用的字符串尾随或前面有另一个字符(例如空格)时,不会发生上述问题。

0 投票
2 回答
1880 浏览

ruby - Sinatra,上传表单中的进度条

我正在开发一个 Sinatra 应用程序,它包含一个上传表单,进度条指示上传完成了多少。如ryan dahl所述,该过程如下:

HTTP 上传进度条相当模糊 - 它们通常涉及在服务器上运行的进程,跟踪 HTTP 服务器正在写入的临时文件的大小,然后在客户端每隔几秒钟对服务器进行一次 AJAX 调用。上传以询问上传进度。

每个上传都有一个随机的session-id,并且为了跟踪我class variable在我的应用程序中使用的关联(我知道,这太可怕了——如果你有更好的想法,请告诉我)

我有一条POST上传路线和GET一条用于 AJAX 轮询的路线。在POST路线内,我保存了session-idTempfile和 总大小的关联。

GET路线中,我根据Tempfile的当前大小计算百分比:

问题是,直到POST请求尚未完成(即,在它读取了所有的 之后Tempfile)才h.nil?返回true,这实际上没有意义,因为我刚刚@@assoc[@sid]在另一条路线中分配了一个值。

那么,我在这里缺少什么?

编辑:我试过

  • set :reload, false
  • set :environment, :production
  • config { @@assoc ||= {} }
  • 我还尝试向它扔一个关系数据库(带有 DataMapper 的 SQLite)

都没有奏效。

0 投票
1 回答
342 浏览

ruby-on-rails - Rails / Mongrel 中的流式响应

我正在尝试在 Rails 应用程序中发送流响应,特别是使用multipart/x-mixed-replace内容类型。据我所知,Rails 不支持流式响应,因为容器会在向客户端发送任何内容之前尝试缓冲并确定响应正文的长度。

顺便说一句,我们正在使用 Mongrel 部署我们的 Rails 应用程序,看起来自定义的 Mongrel 处理程序可以很好地流式传输数据,甚至可以很好地与 Rails 应用程序配合使用。我已经能够创建一个自定义处理程序,但我不知道如何让它与 Rails 应用程序一起工作。

例如,我希望对 URI 的所有请求都/foo.*转到自定义处理程序,而所有其他请求都由 Rails 处理。有人可以建议如何做到这一点吗?我似乎无法复制上面链接文章的结果。或者有没有更简单的方法让 Rails 处理程序产生开放式的流式响应?