有誰知道是否有辦法阻止Sinatra在其響應中發送'Connection:close'標頭?Ruby,Sinatra和Closing Connections
要清楚,我有一個非常簡單的
get '/path' do
puts "Some (~200 byte long) string"
end
但是,看着網絡分析儀的輸出後,我看到它的發送Connection: close
頭的HTTP/1.1 200 OK
之後,我想這停止!
有誰知道是否有辦法阻止Sinatra在其響應中發送'Connection:close'標頭?Ruby,Sinatra和Closing Connections
要清楚,我有一個非常簡單的
get '/path' do
puts "Some (~200 byte long) string"
end
但是,看着網絡分析儀的輸出後,我看到它的發送Connection: close
頭的HTTP/1.1 200 OK
之後,我想這停止!
啊哈!似乎Mongrel,我的Sinatra應用程序運行的服務器,不支持Keep-Alive。所以我只是做:
set :server, 'thin'
gem install thin
和一切後,似乎是更好的工作!
我不說話紅寶石可言,而西納特拉網站是不是它是什麼非常清楚(是一個Ruby框架?),所以我可能完全離開我的搖桿在這裏,但:
Connection: close
由您的Web服務器在關閉狀態下發送。由於可擴展性的原因,保持通常被認爲是在您的服務器中關閉的步驟之一。公平地說,這裏有兩種思路,特別是當涉及到Ajax時。
我使用nginx的我Django的工作(我想這是類似的),我必須保持活動在nginx的關閉是這樣的:
14:58 [email protected]% grep alive /etc/nginx/nginx.conf ~
keepalive_timeout 0;
Apache使用保持活動(見here)。
如果Sinatra是它自己的Web服務器,我找不到任何文檔來關閉它,我會繼續前進,看看我看起來像個白癡。
沒有白癡在這裏相信我,它應該是非常簡單的使用,但我似乎無法弄清楚! Sinatra是一個可以在任意數量的服務器上運行的框架,我目前正在與mongrel(內置於Ruby)一起使用它,所以我想我需要去那裏尋找一些答案! – 2009-11-08 20:04:40
@JP:是的,請在Mongrel的文檔中查找關於保持活躍的信息。我現在正在看,如果我找到了一些東西,我會修改答案。 – 2009-11-08 20:06:25
你走了。 :) – 2009-11-08 20:21:10