有谁知道是否有办法阻止 Sinatra 在其响应中发送“连接:关闭”标头?
要清楚,我有一个非常简单的
get '/path' do
puts "Some (~200 byte long) string"
end
但是,在网络分析器中查看输出后,我看到它在Connection: close
之后发送标头HTTP/1.1 200 OK
,我想停止!
啊哈!运行我的 Sinatra 应用程序的服务器 Mongrel 似乎不支持 Keep-Alive。所以我只是做了:
set :server, 'thin'
之后gem install thin
,一切似乎都变得更好了!
我根本不会说 Ruby,Sinatra 网站也不是很清楚它是什么(它是 Ruby 的框架吗?)所以我可能完全不喜欢这里,但是:
Connection: close
当保持活动关闭时,由您的 Web 服务器发送。出于可扩展性的原因,保持活动通常被认为是关闭服务器的第一步。公平地说,有一种双向的思想流派,尤其是当涉及到 Ajax 时。
我将 nginx 用于我的 Django 工作(我认为它是相似的),并且我在 nginx 中关闭了 keep-alives,如下所示:
14:58 jsmith@lateralus% grep alive /etc/nginx/nginx.conf ~
keepalive_timeout 0;
Apache 使用 KeepAlive(请参见此处)。
如果 Sinatra 是它自己的 Web 服务器,我找不到任何文档来开启 keep alives,我会继续吃掉我看起来像个白痴的事实。