[英]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.