2009-11-08 7 views
1

Est-ce que quelqu'un sait s'il existe un moyen d'empêcher Sinatra d'envoyer l'en-tête 'Connection: close' dans ses réponses?Connexions Ruby, Sinatra et Closing

Pour être clair, j'ai un très simple

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

Mais, après avoir regardé la sortie dans un analyseur de réseau, je vois qu'il est l'envoi de l'en-tête Connection: close juste après la HTTP/1.1 200 OK, que je voudrais Arrêtez!

Répondre

2

Ah ah! Il semble que Mongrel, le serveur sur lequel mon application Sinatra tournait, ne supporte pas Keep-Alive. donc je viens de le faire:

set :server, 'thin' 

après gem install thin et tout semble fonctionner mieux!

+0

Et voilà. :) –

0

Je ne parle pas du tout Ruby, et le site Sinatra est pas très clair sur ce qu'il est (est-il un cadre pour Ruby?) Donc je pourrais être complètement mon rocker, mais:

Connection: close est envoyé par votre serveur Web lorsque les alives sont désactivées. Pour des raisons d'évolutivité, Keep Alives est généralement considéré comme la première étape sur choses à désactiver dans votre serveur. Pour être juste, il y a une école de pensée dans les deux sens, surtout quand Ajax est impliqué.

-je utiliser nginx pour mon travail Django (je pense qu'il est similaire), et je dois garder-alive est désactivé dans nginx comme ceci:

14:58 [email protected]% grep alive /etc/nginx/nginx.conf       ~ 
    keepalive_timeout 0; 

Apache utilise KeepAlive (voir here). Si Sinatra est son propre serveur Web, je ne trouve aucune documentation pour activer les aleurs, et je vais aller de l'avant et manger le fait que je ressemble à un idiot.

+0

Aucun idiote ici ne me fait confiance, c'est censé être très simple à utiliser mais je n'arrive pas à le comprendre! Sinatra est un framework qui peut fonctionner sur n'importe quel nombre de serveurs, je l'utilise actuellement avec mongrel (intégré dans Ruby) donc je suppose que je dois y aller et chercher quelques réponses! –

+0

@JP: Alors oui, cherchez des informations sur keep alives dans la documentation de Mongrel. Je regarde maintenant et je vais réviser la réponse si je trouve quelque chose. –