标签: thin

对于Ruby on Rails,使用Webrick时,是否支持并发请求和Keep-Alive,为什么加载.js和.png文件这么慢?

我正在运行 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 支持?

另外,如果它支持并发连接,那么如果某些代码使用类变量来处理事情,那么不会发生竞争条件吗?(因为类变量内容跨请求保持不变)

mongrel ruby-on-rails thin webrick

2
推荐指数
1
解决办法
1685
查看次数

Ruby Thin/Rack奇怪的多字节字符行为

问题重写了.

我正在开发一个简单的Web框架,并且遇到了Rack或我正在使用的瘦服务器的奇怪行为.

我试图尽可能地简化config.ru文件以获得以下代码来重现奇怪的问题:

app = Proc.new do |env|
    content = "<p>????</p>"
    headers = {'Content-Type' => 'html/text; charset=utf-8', 'Content-Length' => content.length.to_s}
    [200, headers, [content]]
end

run app
Run Code Online (Sandbox Code Playgroud)

上面的代码是一个普通的Rack进程,内容是一个HTML段落,其中包含四个字母的阿拉伯语单词.现在,运行瘦服务器:thin start,我正在等待网页的来源:

<p>????</p>
Run Code Online (Sandbox Code Playgroud)

虽然它变成了:

<p>????
Run Code Online (Sandbox Code Playgroud)

只有,没有结束标记.如果我插入一个英文单词而不是阿拉伯语单词,服务器可以正常工作,所以我得出结论,问题与阿拉伯语的编码或多字节字符有关.

我正在使用Ruby 1.9.2.该文件的编码是UTF-8.如果我只是puts "<p>????</p>"在没有Rack或Thin服务器的情况下尝试使用Ruby,那么Ruby运行良好.

因此,当使用Rack和Thin +消失字符的数量==文本中的阿拉伯字符数时,问题就是阿拉伯语文本之后的许多字符消失了.

有什么想法吗?

ruby encoding rack utf-8 thin

2
推荐指数
1
解决办法
580
查看次数

在没有 :safe 选项的情况下调用“load”——默认为安全模式

当我启动 rails.js 时,如何摆脱这个警告/错误。

在没有 :safe 选项的情况下调用“load”——默认为安全模式。

=> Booting Thin
=> Rails 3.2.13 application starting in development on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
Called 'load' without the :safe option -- defaulting to safe mode.
>> Thin web server (v1.5.1 codename Straight Razor)
>> Maximum connections set to  1024 
>> Listening on 0.0.0.0:3001, CTRL+C to stop 
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails thin

2
推荐指数
1
解决办法
862
查看次数

/ usr/bin/env:ruby_executable_hooks:没有这样的文件或目录

我正在尝试使用Capistrano 3.0/Thin/NGINX部署到Raspberry Pi我已经让它工作了,但在我的重启块我有

namespace :deploy do

  desc 'Restart application'
  task :restart do
    on roles(:app), in: :sequence, wait: 5 do
      execute '/etc/init.d/thin restart'
      execute 'sudo /etc/init.d/nginx restart'
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

对此我很感兴趣

 INFO [128fb9a3] Running /etc/init.d/thin restart on raspberrypi.local
DEBUG [128fb9a3] Command: /etc/init.d/thin restart
DEBUG [128fb9a3]    /usr/bin/env: 
DEBUG [128fb9a3]    ruby_executable_hooks
DEBUG [128fb9a3]    : No such file or directory
DEBUG [128fb9a3]
Run Code Online (Sandbox Code Playgroud)

我在这里尝试了答案,但没有成功.

如果我通过SSH连接到PI并以root身份运行它们,这些命令似乎工作正常.

我应该提一下,我几乎使用了这个教程:http://creativepsyco.github.io/blog/2013/04/10/deploying-rails-on-nginx-and-thin/来设置东西

capistrano nginx thin raspberry-pi

2
推荐指数
1
解决办法
1万
查看次数

oracle瘦驱动程序使用哪个jar文件?

我从某人那里继承了一个VM(Linux OS)。它在tomcat和oracle 11.2.0数据库内部部署/运行了一个Java应用程序“ bob”。我按照以下示例在beanshell(Java的轻量级)中编写了一个简单的数据库连接,它执行得很好,但是我想到了一个问题。

Connection con = DriverManager.getConnection("jdbc:oracle:thin:hostname:1521:sidname","username","password");
Run Code Online (Sandbox Code Playgroud)

我注意到ojdbc14.jar从Oracle安装目录/somepath/oracle/product/11.2.0/xe/jdbc/lib/{ojdbc5.jar中找到了/somepath/tomcat/webapps/bob/WEB-INF/lib/ojdbc14.jar ,ojdbc6_g.jar,ojdbc6.jar}找到三个ojdbc jar文件。

在这种情况下,哪个jar文件使用瘦驱动程序以建立数据库连接并成功运行sql查询语句?

java oracle jdbc thin beanshell

2
推荐指数
1
解决办法
1175
查看次数

瘦服务器 QUERY_STRING 的长度超过 (1024 * 10) 允许的长度

我怎样才能提高为最大允许值QUERY_STRING利用要么thinpumaunicorn在Rails的Web服务器?我试图向我的 Rails API 发出超过限制的 POST 请求,只需要增加服务器的最大阈值

POST 上的特定错误: Invalid request: HTTP element QUERY_STRING is longer than the (1024 * 10) allowed length.

我只在另一个地方遇到过这个问题(HTTP 查询字符串长度与瘦 web 服务器),我不太明白答案(特别是,在哪里可以找到要在该答案中编辑的 C 文件?)

ruby-on-rails thin unicorn puma

2
推荐指数
1
解决办法
2490
查看次数

在Windows上安装瘦身的问题

我正在尝试在Windows上安装Thin(ruby 1.8.6(2007-09-24 patchlevel 111)[i386-mswin32])但是收到错误消息:

C:> gem install thin构建原生扩展.这可能需要一段时间...错误:安装瘦时出错:错误:无法构建gem本机扩展.

C:/rails/ruby/bin/ruby.exe extconf.rb检查c.lib中的main()...没有创建Makefile

NMAKE

Microsoft(R)程序维护实用程序版本1.50版权所有(c)Microsoft Corp 1988-94.版权所有.

    cl -nologo -I. -I. -IC:/rails/ruby/lib/ruby/1.8/i386-mswin32
Run Code Online (Sandbox Code Playgroud)

-一世.-MD -Zi -O2b2xg- -G6 -c -Tcparser.c'cl'未被识别为内部或外部命令,可操作程序或批处理文件.NMAKE:致命错误U1077:'C:\ WINDOWS\system32\cmd.exe':返回代码'0x1'停止.

Gem文件将保留在C:/rails/ruby/lib/ruby/gems/1.8/gems/thin-1.2.5中进行检查.结果记录到C:/rails/ruby/lib/ruby/gems/1.8/gems/thin-1.2.5/ext/thin_parser/gem_make.out

谷歌似乎没有帮助我.有人知道发生了什么事吗?

谢谢

ruby windows rubygems thin

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

Rails和ip-spoofing

我在Rails 2.3.2上有一个小应用程序,配有nginx + thin(127).OS FreeBSD 7.1,DB - Posgresql.

Twise本周我的应用已经下降了.在日志中我得到类似的东西(每秒约2-50个请求):

/!\ FAILSAFE /!\  Mon Oct 04 20:13:55 +0300 2010
 Status: 500 Internal Server Error
  bad content body
   /usr/home/../../history/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/utils.rb:311:in `parse_multipart'
   /usr/home/../../history/vendor/rails/actionpack/lib/action_controller/vendor/rack-1.0/rack/request.rb:125:in `POST'
   /usr/home/../../history/vendor/rails/actionpack/lib/action_controller/request.rb:428:in `request_parameters'
   /usr/home/../../history/vendor/rails/actionpack/lib/action_controller/request.rb:381:in `parameters'
   /usr/home/../../history/vendor/rails/actionpack/lib/action_controller/base.rb:1279:in `assign_shortcuts'
   /usr/home/../../history/vendor/rails/actionpack/lib/action_controller/base.rb:518:in `process_without_filters'
Run Code Online (Sandbox Code Playgroud)

要么:

/!\ FAILSAFE /!\ Tue Nov 09 09:24:39 +0200 2010状态:500内部服务器错误IP欺骗攻击?!HTTP_CLIENT_IP ="XX.XX.XX.XX"HTTP_X_FORWARDED_FOR ="192.168.XX.XX,YY.YY.YY.YY"

/usr/home/../../history/vendor/rails/actionpack/lib/action_controller/request.rb:229:in `remote_ip'
/usr/home/../../history/vendor/rails/actionpack/lib/action_controller/base.rb:1372:in `request_origin'
/usr/home/../../history/vendor/rails/actionpack/lib/action_controller/base.rb:1304:in `log_processing_for_request_id'
/usr/home/../../history/vendor/rails/actionpack/lib/action_controller/base.rb:1296:in `log_processing'
/usr/home/../../history/vendor/rails/actionpack/lib/action_controller/base.rb:522:in `process_without_filters'
Run Code Online (Sandbox Code Playgroud)

在该系统进入最大打开文件限制(我猜它通过postgesql会话打开)后,postgresql无法建立新的连接和应用程序下降.

任何建议,我如何保护我的SSpp在这种情况下?

rake ruby-on-rails ddos thin

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

Heroku的.请求花费100毫秒,间歇性地超时

在针对Heroku上托管的应用程序执行负载测试后,我发现大多数数据库密集型请求需要50-200ms,具体取决于负载.无论负载如何,它都不会变慢.但是,看似随机,请求将彻底超时(30秒或更长时间).

在Heroku上,为什么一个性能相对较高的查询/请求可以在10次中完美地工作8次,并且当负载增加时,彻底超时为10次中的2次?

如果这对于Heroku本身来说似乎是一个问题,我想首先回答一个问题,即"坏代码"是否会以某种方式导致这个问题 - 或者它是否显然是一个问题.

更多信息:

多个Dynos Cedar Stack Dedicated Heroku DB(16个连接,1.7 GB RAM,1个comp.单元)Rails 3.0.7

提前致谢.

ruby ruby-on-rails heroku thin load-testing

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

在Rails上安装/运行Thin Webserver 3

运行"瘦"Web服务器时遇到问题.看起来安装是成功的,但是当我运行"瘦启动"时,看起来好像Thin开始初始化但是却找不到它需要的一些资源.

下面是我的终端会话的审计跟踪.有人可以提供这方面的手吗?根据Thin文档,安装正确完成.谢谢

Rails 3.2.12
ruby 1.9.3

root@pgateway:/var/www/testapp# gem install thin

Fetching: eventmachine-1.0.0.gem (100%)
Building native extensions.  This could take a while...
Fetching: daemons-1.1.9.gem (100%)
Fetching: thin-1.5.0.gem (100%)
Building native extensions.  This could take a while...
Successfully installed eventmachine-1.0.0
Successfully installed daemons-1.1.9
Successfully installed thin-1.5.0
3 gems installed



root@pgateway:/var/www/testapp# thin start
>> Using rack adapter
>> Thin web server (v1.5.0 codename Knife)
>> Maximum connections set to 1024
>> Listening on 0.0.0.0:3000, CTRL+C to stop

/usr/local/rvm/gems/ruby-1.9.3-p385/gems/thin-1.5.0/lib/thin/backends   /tcp_server.rb:16:in `connect': cannot load such …
Run Code Online (Sandbox Code Playgroud)

gem thin ruby-on-rails-3

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

Rails使用pid轻薄停止

我在iMac上运行了Rails Thin服务器.通常,我ctl-c来阻止它.但是,我的终端窗口关闭了,现在我正试图阻止瘦.

我试过这个:

$ thin stop
Run Code Online (Sandbox Code Playgroud)

得到了这个:

no PID found in tmp/pids/thin.pid
Run Code Online (Sandbox Code Playgroud)

但是,PID是tmp/pids/server.pid

我试过这个:

$ thin stop -C tmp/pids/server.pid
Run Code Online (Sandbox Code Playgroud)

但是,我得到了这个:

undefined method `each' for 8395:Fixnum (NoMethodError)
Run Code Online (Sandbox Code Playgroud)

谢谢您的帮助!

ruby-on-rails thin

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

瘦或美洲狮:使用Faye为Rails聊天服务器使用什么?

作为一种学习体验,我正在尝试为Android和iOS构建一个聊天应用程序,允许群聊(如Whatsapp)和Rails中的聊天服务器.经过一番研究后,我决定和Faye一起去,因为它似乎很容易实现.我正在按照这些教程来做到这一点:

对于我的工作栈,我想建立的NginxThinPuma,但我不明白这将是更好,这将是"正确"的方式建立生产聊天服务器.


我知道这个问题可能有点主观,但谷歌搜索/研究过去一周这让我更加矛盾,因为大多数例子都在使用,Thin但大多数文章都喜欢Puma.

如果您能提供您的答案的参考和示例,我将不胜感激.谢谢.

ruby-on-rails nginx thin faye puma

0
推荐指数
1
解决办法
6256
查看次数

如何使用ruby以JSON格式记录系统状态

我有一个ruby脚本,我使用GET方法记录系统状态,在日志中返回的输出是这样的:

1.2.3.111 - - [00/Jan/2016:08:21:24 +0000] "GET /service/sys/status HTTP/1.1" 200 15 0.0006 
Run Code Online (Sandbox Code Playgroud)

我想以JSON格式记录这些.有没有办法可以做到这一点,虽然我知道这可以通过网络服务器以某种方式完成,但我不知道如何做到这一点.

ruby logging json web-services thin

-1
推荐指数
1
解决办法
1916
查看次数