Ruby,Sinatra和Closing Connections

时间:2009-11-08 19:49:07

标签: ruby sinatra

有没有人知道是否有办法阻止Sinatra在其回复中发送'Connection:close'标题?

要清楚,我有一个非常简单的

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

但是,在查看网络分析器中的输出后,我看到它正在Connection: close之后发送HTTP/1.1 200 OK标题,我想停止!

2 个答案:

答案 0 :(得分:3)

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

set :server, 'thin'

gem install thin之后,一切似乎都变得更好了!

答案 1 :(得分:0)

我根本不会说Ruby,Sinatra网站的内容并不十分清楚(它是Ruby的框架吗?)所以我可能完全脱离摇滚乐,但是:

当关闭keep alives时,您的Web服务器会发送

Connection: close。出于可伸缩性的原因,通常认为保持alives是要在服务器中关闭的东西的第一步。公平地说,两种方式都有一种思想流派,特别是在涉及Ajax时。

我使用nginx进行我的Django工作(我认为它类似),并且我在nginx中关闭了保持活动:

14:58 jsmith@lateralus% grep alive /etc/nginx/nginx.conf                            ~
     keepalive_timeout 0;

Apache使用KeepAlive(参见here)。

如果Sinatra是它自己的Web服务器,我找不到任何文件来保持活力,我会继续吃掉我看起来像个白痴的事实。