我正在寻找一些关于RoR的书籍,以帮助自学如何构建可扩展的RoR应用程序.我已经阅读了RailsSpace的书,并且今晚正在启动Rails Way书.
一些感兴趣的主题是:
我正在尝试Mongrel并使用以下代码:
require 'rubygems'
require 'mongrel'
class SimpleHandler < Mongrel::HttpHandler
def process(request, response)
response.start(200) do |head, out|
head["Content-Type"] = "text/plain"
out.write("Hello World!\n")
end
end
end
h = Mongrel::HttpServer.new("0.0.0.0", "3000")
h.register("/test", SimpleHandler.new)
puts "Press Control-C to exit"
h.run.join
trap("INT") do
puts "Exiting..."
end
Run Code Online (Sandbox Code Playgroud)
基本上,这只是打印出"Hello World!" 当我去localhost:3000 /测试.它工作正常,我可以用Control-C关闭程序.但是当我按下Control-C时,会输出:
my_web_server.rb:17:in `join': Interrupt
from my_web_server.rb:17
Run Code Online (Sandbox Code Playgroud)
所以我尝试将该trap("INT")语句放在最后,但它没有被调用.解?
谢谢.
我已经得到了安装我在Windows Server 2008上编写的Rails 3应用程序的不愉快的任务(绝对不是我的选择 - 承诺了一个Linux服务器但是IT在最后一分钟拉出了地毯所以请不要建议改变环境作为解决方案).
我按照这篇博客文章中的说明进行了一些小修改,现在实际上让我的应用程序在Windows/IIS(代理mongrel)下运行并经受了很大的挫折.唯一剩下的就是让mongrel作为服务运行.
不幸的是,mongrel gem并没有保持Rails 3的最新状态,虽然我可以在命令行下使用mongrel运行应用程序但是我无法使用mongrel_service来使应用程序作为服务运行.
对此的解决方案似乎是在github上使用service_wrapper项目,该项目已在前一个问题中提到过.该项目尚未完成,但显然功能齐全,但没有文档/二进制文件.我查看了源代码,并没有真正理解它是什么/它是如何工作的,所以想知道是否有人可以指出我正确的方向(或者,更好的,请指导我如何)来安装它.
如此接近,但仍然如此......
windows-services mongrel windows-server-2008 ruby-on-rails-3
启动服务器时,我在更新到Ruby 1.9后得到这个奇怪的错误:
"[BUG]跨线程违规rb_gc()ruby 1.8.6(2008-08-11)[i386-mswin32]
此应用程序已请求Runtime以不寻常的方式终止它.有关更多信息,请联系应用程序的支持团队."
我的mongrel版本是1.1.6,应该与Ruby 1.9兼容.我还有Ruby 1.8.6安装,所以我认为由于某种原因,mongrel试图访问并杀死ruby?我的rails版本是2.3.4,以防万一.
我正在运行 Rails 3.0.5,控制台上报告一个页面需要 60 毫秒,但是如果我查看 Firefox Net 加载时间图表,它需要 2.9 秒。如果我ab在 Bash 上运行命令,它说需要 300 毫秒。
因此,如果移除支架 javascripts(其中 6 个),则需要 1.9 秒……但我想知道为什么这么慢?活下去不是光荣的吗?
同样奇怪的是 Firefox 显示 4 个文件正在同时下载——我认为 Webrick 一次只支持 1 个连接?
(改为使用杂种或“瘦”会使事情变得不同或更好吗?)
还奇怪的是,如果我
ab -n 10 -c 5 http://www.somesite.com:8080
Run Code Online (Sandbox Code Playgroud)
需要 3 秒,为了测试如何keep-alive支持,我使用了以下-k选项:
ab -n 10 -c 5 -k http://www.somesite.com:8080
Run Code Online (Sandbox Code Playgroud)
但现在总时间从 3 秒变为 4.5 秒。不keep-alive应该让它更快,并且keep-alive由 Webrick 支持?
另外,如果它支持并发连接,那么如果某些代码使用类变量来处理事情,那么不会发生竞争条件吗?(因为类变量内容跨请求保持不变)
我在我的Rails网站上有一个虚拟主机,我需要确定充当前端的服务器的类型。
他们说,Apache未被用作前端服务器,但是我需要以某种方式进行检查。
这可能吗 ?也许一些终端命令?
我对rails和web开发上的ruby相当新.以下是我在此链接中的设置http://tonyrose023.blogspot.com/2007/01/multiple-rails-apps-with-mongrel.html 我在Apache2上使用Mongrel群集运行多个rails应用程序.
http://services.abc.edu/app1 http://services.abc.edu/app2 http://services.abc.edu/app3
这就是我的'虚拟主机'(/etc/apache2/sites-availabe/services.abc.edu)文件的样子
--------------
<Proxy balancer://app1>
BalancerMember http://services.abc.edu:8000
BalancerMember http://services.abc.edu:8001
BalancerMember http://services.abc.edu:8002
Order deny,allow
Deny from all
Allow from all
</Proxy>
<Proxy balancer://app2>
BalancerMember http://services.abc.edu:8004
BalancerMember http://services.abc.edu:8005
Order deny,allow
Deny from all
Allow from all
</Proxy>
<Proxy balancer://app3>
BalancerMember http://services.abc.edu:8006
BalancerMember http://services.abc.edu:8007
Order deny,allow
Deny from all
Allow from all
</Proxy>
<VirtualHost *:80>
ServerName services.abc.edu
DocumentRoot /home/joe/projects/app1/public
<Directory "/home/joe/projects/app1/public">
Options FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
<Directory "/home/joe/projects/app2/public">
Options FollowSymLinks
AllowOverride None
Order …Run Code Online (Sandbox Code Playgroud)