标签: thin

如何使用apache bench在url中指定查询字符串

我的rails应用程序在瘦服务器上运行,我想使用apachebench进行基准测试

我使用的命令是

ab -n 1 -c 1 http://localhost:3001/welcome/search?query="doctor"&rad=5
Run Code Online (Sandbox Code Playgroud)

但瘦服务器没有采取这个url.Its给

!! Invalid Request
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮助我如何给url这样瘦,用查询字符串接受url

apache ruby-on-rails thin apachebench

13
推荐指数
2
解决办法
9014
查看次数

区分nginx和瘦

这是关于nginx和rails环境中的瘦身的新手问题.在轨道上阅读/学习时,我经常听说nginx和thin是一个很好的组合,适用于rails网站.在阅读每个描述时,他们都将自己描述为Web服务器,因此我对组合带来的内容感到困惑.如果有人可以简要描述它们是什么以及它们如何相互补充,我将非常感激.

谢谢!

ruby ruby-on-rails nginx thin

13
推荐指数
2
解决办法
3322
查看次数

有没有办法Rails 3.0.x可以默认使用Thin?

我为我的开发/测试环境中的每个应用程序运行Thin Webserver.当我使用Mongrel和Rails 2.x时,我所要输入的只是script/server让它运行我选择的网络服务器.但是使用Rails 3,我必须每次都指定Thin.有没有办法让我的Rails应用程序只需键入rails s而不是rails s thin

ruby ruby-on-rails thin

13
推荐指数
2
解决办法
3977
查看次数

通过Sinatra应用程序将选项传递给rackup

我是红宝石的新手,学习Sinatra.虽然通过'sinatra'直接要求和设置路径来创建Sinatra站点非常简单并且有很好的文档记录,但通过要求'sinatra/base'和编写一个继承自'Sinatra::Base' 的类来创建应用程序,虽然仍然相对容易,但是文档记录很差(可能因为它是一个最近Sinatra的特色).

而这正是我在做的事情.我在Sinatra部分没有太多麻烦,但是我在rackup/thin/server部分遇到了一些麻烦.显然,有两种方法可以部署应用程序:使用Sinatra本身(使用该run!方法)和使用rackup文件(通常config.ru).

使用Sinatra的run!方法非常直观,就像一个魅力,但显然如果我想在heroku上部署我的应用程序它不起作用.事实上,我在GitHub上遇到的几乎所有Sinatra应用都使用了一个config.ru文件.

使用rackup文件可能同样直观,但我无法理解如何将选项从Sinatra应用程序传递到服务器(ir:端口).我尝试将选项合并到rackup的默认选项数组:

MyApp::App.default_options.merge!(
  :run  => false,
  :env  => :production,
  :port => 4567
)

run MyApp::App
Run Code Online (Sandbox Code Playgroud)

通过直接向应用添加选项:

MyApp::App.set :port, 4567
MyApp::App.set :run, false
MyApp::App.set :env, :production

run MyApp::App
Run Code Online (Sandbox Code Playgroud)

通过在应用程序类中设置选项:

module MyApp
  class App < Sinatra::Base
    set :port, 4567
    set :run, false
    set :env, :production

    # ...

  # config.ru
  require 'app'

  run MyApp::App
Run Code Online (Sandbox Code Playgroud)

上述所有方法都失败了,要么显示错误消息,要么不考虑任何选项.那么在使用rackup文件时,有没有办法通过Sinatra应用程序将选项传递给rackup/thin/the sever?或者问题中的选项应该通过命令行选项直接传递给rackup/thin/the sever?

作为问题的参考,这里是我正在构建的小型Sinatra应用程序:https://github.com/AzizLight/Wiki/

ruby rack thin sinatra rackup

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

Rackup使用Thin而不是WEBrick

新的Sinatra,只是开发服务器启动和运行,但rackup使用WEBrick而不是Thin,Thin已经安装了宝石,这必须是一个简单的配置调整,但我不知道在哪里.哦,当你在它,Thin当我更改源代码时自动刷新?WEBrick当我更改源代码时,似乎必须停止并重新启动.

编辑 正如所建议的那样,thin start对我的设置进行调整.它本身会抛出一个错误"start_tcp_server": no acceptor (RuntimeError),这意味着我已经在该端口上运行了另一个服务.要解决这个问题,我只需运行thin start -p 9292.希望这有助于其他人.

thin sinatra

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

在Heroku上没有使用Sinatra/Thin检测到HTTP流连接(SSE)客户端断开连接

我正在尝试在Cedar堆栈上部署Sinatra流式SSE响应应用程序.不幸的是,虽然它在开发中完美运行,但是一旦部署到Heroku,callback或者errback在调用连接时永远不会被调用,导致连接池被填满过时的连接(永远不会超时,因为数据仍在服务器上发送给他们侧.)

来自Heroku文档的Relvant信息:

长轮询和流媒体响应

Cedar支持HTTP 1.1功能,例如长轮询和流式响应.应用程序有一个初始的30秒窗口,以单个字节响应客户端.但是,此后发送的每个字节(从客户端接收或由您的应用程序发送)重置滚动55秒窗口.如果在55秒窗口期间没有发送数据,则终止连接.

如果您要发送流响应,例如服务器发送的事件,则需要检测客户端何时挂断,并确保您的应用服务器立即关闭连接.如果服务器保持连接打开55秒而不发送任何数据,您将看到请求超时.

这正是我想要做的 - 检测客户端何时挂断,并立即关闭连接.然而,关于Heroku路由层的一些东西似乎阻止Sinatra像通常那样检测流关闭事件.

一些示例代码可用于复制此代码:

require 'sinatra/base'

class MyApp < Sinatra::Base

  set :path, '/tmp'
  set :environment, 'production'

  def initialize
    @connections = []

    EM::next_tick do
      EM::add_periodic_timer(1) do
        @connections.each do |out|
          out << "connections: " << @connections.count << "\n"
        end
        puts "*** connections: #{@connections.count}"
      end
    end

  end

  get '/' do
    stream(:keep_open) do |out|
      @connections << out
      puts "Stream opened from #{request.ip} (now #{@connections.size} open)"

      out.callback do
        @connections.delete(out)
        puts "Stream closed from #{request.ip} (now …
Run Code Online (Sandbox Code Playgroud)

ruby heroku thin sinatra http-streaming

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

Puma在哪里登录

我一直在使用Thin来运行我的ruby Sinatra应用程序,但我现在正在切换到Puma.Thin创建log/thin.log我自己使用的日志.我注意到Puma没有生成日志文件(不是我能看到的).我已经尝试使用谷歌搜索文档,但没有找到任何东西.

我想知道是否/如何在Puma中指定日志路径.

任何帮助将非常感激.

亚历克斯

ruby logging webserver thin puma

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

Rails 3 Encoding :: CompatibilityError

我正在开发一个通过ajax提交法语翻译的rails应用程序,由于某种原因,我在日志中不断收到以下错误:

Encoding::CompatibilityError incompatible character encodings: UTF-8 and ASCII-8BIT

有谁知道如何解决这一问题?

FIX:这适用于WEBrick服务器

放置# encode: UTF-8在您希望使用不同字符的每个文件的顶部

我无法让这个在带有Thin的rails服务器上工作...其他人遇到这个?

ruby-on-rails utf-8 thin

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

如何使`thin` webserver打印日志到STDOUT

上下文:要将localhost作为SSL运行,我按照此站点上说明进行操作

设置SSL证书后,为了运行本地rails服务器,该站点说:

thin start --ssl <some more options>
Run Code Online (Sandbox Code Playgroud)

当我这样做时,我注意到我不再看到Rails日志被打印到STDOUT.

我如何通过--ssl和其他选项thin?这不起作用:

bundle exec rails s thin --ssl

.../rails/commands/server.rb:33:in `parse!': 
    invalid option: --ssl (OptionParser::InvalidOption)
Run Code Online (Sandbox Code Playgroud)

或者,如何thin将Rails日志输出到STDOUT?

thin ruby-on-rails-4

11
推荐指数
2
解决办法
5324
查看次数

为什么我会收到"找不到精简适配器"?

我是一名非常缺乏Ruby经验的iOS开发人员,他试图在Heroku上运行API时遵循" iOS移动开发入门和Sinatra API ".

我抓住了Git上的示例项目,所以我知道我的设置与我应该拥有的相同.

我已经安装了捆绑包,并认为一切都准备好了,但每当我做的时候我都会foreman start得到这个:

2:14:56 web.1     | started with pid 5140
12:14:57 web.1     | No adapter found for {MY PROJECT'S FILEPATH}
12:14:57 web.1     | process terminated
12:14:57 system    | sending SIGTERM to all processes
Run Code Online (Sandbox Code Playgroud)

我做错了什么,或者我需要做些什么来让它运行?

谢谢!

ruby-on-rails heroku thin

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