簡體   English   中英

Ruby,Sinatra和關閉連接

[英]Ruby, Sinatra and Closing Connections

有誰知道是否有一種方法可以阻止Sinatra在其響應中發送“ Connection:close”標頭?

要明確的是,我有一個非常簡單的

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

但是,在網絡分析器中查看了輸出之后,我看到它正在Connection: close HTTP/1.1 200 OK之后發送Connection: close標頭,我想停下來!

啊哈! 我的Sinatra應用程序運行所在的服務器Mongrel似乎不支持Keep-Alive。 所以我只是做了:

set :server, 'thin'

gem install thin ,一切似乎都工作得更好!

我一點都不講Ruby,並且Sinatra網站對其含義還不是很清楚(它是Ruby的框架嗎?),所以我可能在這里完全不了解自己,但:

Connection: close當保持活動關閉時,關閉由Web服務器發送。 出於可伸縮性的考慮,保持活動通常被視為關閉服務器中的第一步。 公平地說,這兩種方法都有一個學派,特別是在涉及Ajax時。

我將nginx用於Django工作(我認為這很相似),並且在nginx中關閉了保持活動,如下所示:

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

Apache使用KeepAlive(請參閱此處 )。

如果Sinatra是它自己的Web服務器,那么我找不到任何可以持續運行的文檔,我將繼續研究一下我看起來像個白痴。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM