标签: mongrel

Capistrano没有正确重启Mongrel集群

我有一个在nginx下运行的三个mongrel集群,我使用Capistrano 2.4.3部署应用程序.当我有一个正在运行的系统时"封盖部署",行为是:

  1. 该应用程序已部署.代码已成功更新.
  2. 在cap deploy输出中,有这样的:

    • 执行"sudo -p"sudo密码:'mongrel_rails cluster :: restart -C /var/www/rails/myapp/current/config/mongrel_cluster.yml"
    • 服务器:["myip"]
    • [myip]执行命令
    • **[out :: myip]停止端口9096
    • **[out :: myip]停止端口9097
    • **[out :: myip]停止端口9098
    • **[out :: myip]已经启动了端口9096
    • **[out :: myip]已经启动了端口9097
    • **[out :: myip]已经启动了端口9098
  3. 我立即检查服务器并发现Mongrel仍在运行,并且前三个实例的PID文件仍然存在.
  4. 不久之后(不到一分钟),我发现Mongrel不再运行,PID文件消失,无法重启.
  5. 如果我手动启动服务器上的mongrel,应用程序启动就好了.

在尝试重新启动集群之前,似乎'mongrel_rails cluster :: restart'没有正确等待完全停止.如何诊断和解决此问题?

编辑:这是答案:

mongrel_cluster,在"重启"任务中,只需执行以下操作:

 def run
   stop
   start
 end
Run Code Online (Sandbox Code Playgroud)

在调用"start"之前,它不会等待或检查进程是否已退出.这是一个已知错误,提交了一个未完成的补丁.我将补丁应用于Mongrel Cluster,问题就消失了.

ruby deployment mongrel capistrano ruby-on-rails

5
推荐指数
1
解决办法
1874
查看次数

对Rails应用程序的第一个请求非常慢

我的Rails应用程序的第一个请求(工作会话)总是滞后.切换到生产模式没有帮助.

我使用mongrel,其他请求以可接受的速度处理.

如何让它更快?

问候

mongrel ruby-on-rails http

5
推荐指数
1
解决办法
3602
查看次数

我应该为我的Rails应用程序使用Apache或Nginx&Passenger或Mongrel

我有一个Ruby on Rails应用程序,它将成为一个CMS,这意味着它主要是数据库密集型的.我希望它具有相当大的流量,所以在设计之前我选择使用哪些服务器.对我来说最重要的是表现.

我听说过关于Nginx的好东西,Rails社区中的许多开发人员都建议我唯一担心的是它的版本是0.8,这是Beta我相信所以我担心潜在的问题.你说什么?

另外,我想决定使用Mongrel集群还是Phusion Passenger.你怎么看?

我打算使用Ruby 1.9,因为它具有更好的性能,Ruby 1.8和我将使用VPS来托管我的网站.

我的主要内容是性能,即使设置一个在另一个上需要更长的时间.

非常感谢您的意见.

谢谢,

apache mongrel ruby-on-rails passenger nginx

5
推荐指数
1
解决办法
6060
查看次数

在Mongrel处理程序的URI中使用正则表达式

我目前正在使用Mongrel开发自定义Web应用程序项目.

我希望Mongrel使用基于正则表达式的定义的Http Handler.例如,每当有人调用http://test/bla1.jshttp://test/bla2.js这样的URL时,就会调用相同的Http处理程序来管理请求.

到目前为止我的代码看起来像这样:

http_server = Mongrel::Configurator.new :host => config.get("http_host") do
  listener :port => config.get("http_port") do

    uri Regexp.escape("/[a-z0-9]+.js"), :handler => BLAH::CustomHandler.new
    uri '/ui/public', :handler => Mongrel::DirHandler.new("#{$d}/public/")
    uri '/favicon', :handler => Mongrel::Error404Handler.new('')

    trap("INT") { stop }
    run
  end
end
Run Code Online (Sandbox Code Playgroud)

正如你所看到的,我试图在这里使用正则表达式而不是字符串:

 uri Regexp.escape("/[a-z0-9]+.js"), :handler => BLAH::CustomHandler.new
Run Code Online (Sandbox Code Playgroud)

但这不起作用.有解决方案吗

感谢那.

ruby regex mongrel http handler

5
推荐指数
1
解决办法
486
查看次数

使用RubyInstaller 1.9.1 RC2后在Windows上启动mongrel时出错

我通过可从RubyInstaller 1.9.1 RC2安装了Ruby RubyForge的,更新的宝石,并安装导轨.使用webrick,一切都运行良好.为了好玩,我使用"gem install mongrel"安装了mongrel.装置很顺利:

Successfully installed gem_plugin-0.2.3
Successfully installed cgi_multipart_eof_fix-2.5.0
Successfully installed mongrel-1.1.5-x86-mingw32
3 gems installed
Installing ri documentation for gem_plugin-0.2.3...
Installing ri documentation for cgi_multipart_eof_fix-2.5.0...
Installing ri documentation for mongrel-1.1.5-x86-mingw32...
Updating class cache with 1162 classes...
Installing RDoc documentation for gem_plugin-0.2.3...
Installing RDoc documentation for cgi_multipart_eof_fix-2.5.0...
Installing RDoc documentation for mongrel-1.1.5-x86-mingw32...
Run Code Online (Sandbox Code Playgroud)

现在,当我使用"ruby脚本/服务器"启动Web服务器时,我收到错误:

"程序无法启动,因为您的计算机缺少msvcrt-ruby18.dll."

然后,webrick启动并正常运行.

我猜测它是使用Rails 1.9的问题而mongrel期望1.8?(我是铁杆新手,没有真正的理由让我使用杂种......只是戳了一下)

windows mongrel ruby-on-rails

5
推荐指数
1
解决办法
1167
查看次数

在heroku上使用rails 3 app中的mongrel 1.2.0.pre2时出错

我正在从谷歌进行身份验证并且收到request too long错误所以在一些研究中我添加了mongrel宝石.这修复了request too long我本地计算机上的错误.

但是,现在当我推送到heroku时,我不断得到以下错误

您已经激活了守护程序1.1.0,但您的Gemfile需要守护程序1.0.10.考虑使用bundle exec.(宝石:: LoadError)

的Gemfile:

gem 'pg'
gem 'compass', '>= 0.11.5'
gem 'fancy-buttons'
gem 'haml', '3.1'
gem "nifty-generators", :group=>:development
gem "bcrypt-ruby", :require => "bcrypt"
gem "jquery-rails"
gem "devise"
gem "omniauth"
gem 'oa-openid', :require => 'omniauth/openid'
gem 'mongrel', '1.2.0.pre2'
Run Code Online (Sandbox Code Playgroud)

也许从杂项中取出杂物可能会解决手头的问题,但是当我从谷歌进行身份验证时,我会再次"请求太长时间"错误.

这有解决方法吗?我应该使用不同的版本吗?如果是这样......哪个?

bundle exec即使heroku在部署之前运行它,我也会在本地运行.

mongrel heroku ruby-on-rails-3

5
推荐指数
1
解决办法
401
查看次数

无法在Eclipse项目属性中保存"是Tomcat项目"设置

我有一个Spring MVC项目,我一直在部署到Tomcat(在本地和服务器上安装).我正在使用Eclipse Indigo作为我的IDE.为了部署,我一直在右键单击并选择"在服务器上运行",这将在localhost上正常运行.为了将WAR部署到实际服务器,我一直在右键单击Project,选择Export,然后通过向导来部署WAR文件.

我的Eclipse/Java很生疏,但我确实记得几年前我使用它时,我使用的是Tomcat的Sysdeo插件,它可以让我从右键单击上下文中选择Deploy to War.所以,我戳了一下,发现了我安装的"Mongrel".有了这个,我根据偏好去了Mongrel,并设置我的Tomcat版本,这样我就可以点击小启动/停止Tomcat图标并启动/停止服务器.这很成功.

我现在无法为我的生活做的是,在Project Properties-> Tomcat中,选择"是一个Tomcat项目".我选中复选框,然后单击应用和/或确定关闭窗口,当我再次打开它时,我的设置不会被记录.我已经尝试检查框并添加其他选项(如上下文名称,WAR文件导出路径,根子目录和激活开发者加载器),但我没做什么"坚持".

有人能告诉我我错过了什么,或者至少指出了我正确的方向?我很难过.

提前致谢.

java eclipse tomcat mongrel eclipse-plugin

5
推荐指数
1
解决办法
2421
查看次数

如何正常关闭Mongrel Web服务器

我的RubyOnRails应用程序使用Apache配置背后的通常一组mongrel进行设置.我们注意到我们的Mongrel Web服务器内存使用量在某些操作上会变得非常大,我们真的希望能够随时动态地重新启动选定的Mongrel进程.

但是,由于我不会进入这里的原因,我们有时非常重要的是我们不会在处理请求时中断Mongrel,因此我假设一个简单的进程终止不是答案.

理想情况下,我想向Mongrel发送一个信号,表示"完成你正在做的任何事情然后在接受任何更多连接之前退出".

是否有标准技术或最佳实践?

ruby mongrel ruby-on-rails

4
推荐指数
2
解决办法
3485
查看次数

升级到rails 3后,Rails 2.x mongrel将无法启动. - mongrel_rails(MissingSourceFile)

将我的Rails安装升级到OS X上的Rails 3之后,我在使用Mongrel运行Rails 2.x开发站点时遇到了问题.WEBrick似乎工作,但我真的希望有很好的Mongrel输出用于调试.

跑完后$ script/server我明白了:

/Library/Ruby/Gems/1.8/gems/activesupport-2.0.2/lib/active_support/dependencies.rb:489:in `load': no such file to load -- mongrel_rails (MissingSourceFile)
from /Library/Ruby/Gems/1.8/gems/activesupport-2.0.2/lib/active_support/dependencies.rb:489:in `load'
from /Library/Ruby/Gems/1.8/gems/activesupport-2.0.2/lib/active_support/dependencies.rb:342:in `new_constants_in'
from /Library/Ruby/Gems/1.8/gems/activesupport-2.0.2/lib/active_support/dependencies.rb:489:in `load'
from /Library/Ruby/Gems/1.8/gems/rails-2.0.2/lib/commands/servers/mongrel.rb:64
from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:49:in `gem_original_require'
from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:49:in `require'
from /Library/Ruby/Gems/1.8/gems/activesupport-2.0.2/lib/active_support/dependencies.rb:496:in `require'
from /Library/Ruby/Gems/1.8/gems/activesupport-2.0.2/lib/active_support/dependencies.rb:342:in `new_constants_in'
from /Library/Ruby/Gems/1.8/gems/activesupport-2.0.2/lib/active_support/dependencies.rb:496:in `require'
from /Library/Ruby/Gems/1.8/gems/rails-2.0.2/lib/commands/server.rb:39
from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:49:in `gem_original_require'
Run Code Online (Sandbox Code Playgroud)

到目前为止,这是我尝试过的:

$ sudo gem update system
Run Code Online (Sandbox Code Playgroud)
$ sudo gem update
Run Code Online (Sandbox Code Playgroud)
$ sudo gem uninstall mongrel
Run Code Online (Sandbox Code Playgroud)
$ sudo gem install mongrel --include-dependencies
Run Code Online (Sandbox Code Playgroud)
$ which mongrel_rails
Run Code Online (Sandbox Code Playgroud)

/usr/bin/mongrel_rails

$ mongrel_rails start
Run Code Online (Sandbox Code Playgroud)

→成功,但没有标准

$ …
Run Code Online (Sandbox Code Playgroud)

macos mongrel ruby-on-rails

4
推荐指数
1
解决办法
4414
查看次数

如何在Thin控制台窗口中查看调试代码?

在Mongrel中,我们可以看到任何ruby调试代码.安装后瘦了做thin start.我没有在控制台窗口看到任何调试代码.

这是不是很好吗?

我们是否应该tail -f log/development.log在新的控制台窗口中使用来查看调试代码?

ruby mongrel thin ruby-on-rails-3

4
推荐指数
1
解决办法
3418
查看次数