1

Sinatra が応答で 'Connection: close' ヘッダーを送信しないようにする方法があるかどうかは誰にもわかりませんか?

明確にするために、私は非常に単純です

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

しかし、ネットワーク アナライザーで出力を確認したところ、 のConnection: close直後にヘッダーが送信されていることがわかりましたHTTP/1.1 200 OK。これを停止したいと思います。

4

2 に答える 2

3

あはは!Sinatra アプリが実行されていたサーバーである Mongrel は Keep-Alive をサポートしていないようです。だから私はちょうどやった:

set :server, 'thin'

その後gem install thin、すべてがうまく機能しているようです!

于 2009-11-08T20:11:27.490 に答える
0

私は Ruby をまったく話せませんし、Sinatra のサイトでは Ruby が何であるかについてあまり明確ではありません (Ruby のフレームワークですか?)。

Connection: closeキープアライブがオフになっている場合、Web サーバーによって送信されます。スケーラビリティの理由から、キープアライブは一般に、サーバーでオフにする最初のステップと見なされます。公平を期すために言うと、特に Ajax が関係している場合は、両方の考え方があります。

私は Django の作業に nginx を使用しており (似ていると思います)、次のように nginx でキープアライブをオフにしています。

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

Apache は KeepAlive を使用します (こちらを参照)。

Sinatra が独自の Web サーバーである場合、キープアライブを有効にするためのドキュメントが見つからないので、自分がバカに見えるという事実を受け入れてしまいます。

于 2009-11-08T19:59:26.953 に答える