Ruby、Sinatra和正在关闭的连接

Ruby、Sinatra和正在关闭的连接,ruby,sinatra,Ruby,Sinatra,有人知道是否有办法阻止Sinatra在其响应中发送“Connection:close”标题吗 说清楚一点,我有一个非常简单的问题 get '/path' do puts "Some (~200 byte long) string" end 但是,在查看网络分析器中的输出后,我看到它正在发送连接:close头,就在HTTP/1.1200 OK之后,我想停止 我根本不会说Ruby,Sinatra网站也不太清楚它是什么(它是Ruby的框架吗?),所以我在这里可能会完全失控,但是: Connect

有人知道是否有办法阻止Sinatra在其响应中发送“Connection:close”标题吗

说清楚一点,我有一个非常简单的问题

get '/path' do
  puts "Some (~200 byte long) string"
end

但是,在查看网络分析器中的输出后,我看到它正在发送
连接:close
头,就在
HTTP/1.1200 OK
之后,我想停止

我根本不会说Ruby,Sinatra网站也不太清楚它是什么(它是Ruby的框架吗?),所以我在这里可能会完全失控,但是:

Connection:close
在keep alives关闭时由Web服务器发送。出于可伸缩性的原因,keep alives通常被认为是在服务器中关闭的第一步。公平地说,双方都有一个学派,特别是当涉及Ajax时

我在Django工作中使用nginx(我认为这是类似的),我在nginx中关闭了alives,如下所示:

14:58 jsmith@lateralus% grep alive /etc/nginx/nginx.conf                            ~
     keepalive_timeout 0;
Apache使用KeepAlive(请参阅)


如果Sinatra是它自己的Web服务器,我找不到任何文档来打开keep alives,我会继续承认我看起来像个白痴。

啊哈!我的Sinatra应用程序运行的服务器Mongrel似乎不支持Keep Alive。所以我就这么做了:

set :server, 'thin'

gem安装瘦
之后,一切似乎都运行得更好

这里没有白痴相信我,它应该是非常简单的使用,但我似乎无法理解它!Sinatra是一个可以在任意数量的服务器上运行的框架,我目前正在使用mongrel(内置于Ruby中),所以我想我需要去那里寻找一些答案@JP:那么是的,在Mongrel的文档中查找关于保持生命的信息。我正在看,如果我发现了什么,我会修改答案。