Benvenuto nella nostra community, registra un account gratuito ADESSO!
Oltre 7000 persone hanno già registrato il loro account. Chiedi aiuto, conversa con aziende ed esperti del settore webhosting italiano.
Iscriviti subito! In meno di 2 minuti!




Pagina 1 di 2 12 UltimaUltima
Risultati da 1 a 15 di 25
  1. #1
    HTastinator
    Data Registrazione
    Nov 2007
    Messaggi
    290

    usare gli header connection? (close o keepalive?

    analizzando gli header inviati dal mio server, non c'è nessun header che definisce la connection se deve essere close o keep alive..

    secondo voi cambia qualcosa ad usare quest'header? o l'uno vale l'altro?

    grazie



  2. #2
    Webhosting Guru L'avatar di daniele_dll
    Data Registrazione
    Feb 2006
    Località
    Qualcuno dice Sicilia, qualche altro Nord Africa
    Messaggi
    1,535

    Re: usare gli header connection? (close o keepalive?

    Citazione Originariamente Scritto da xnavigator Visualizza Messaggio
    analizzando gli header inviati dal mio server, non c'è nessun header che definisce la connection se deve essere close o keep alive..

    secondo voi cambia qualcosa ad usare quest'header? o l'uno vale l'altro?

    grazie
    hola

    beh direi che cambia un mondo!

    Quando non specificato la connessione è di tipo CLOSE ovvero dopo che la richiesta viene eseguita il webserver deve chiudere la connessione. Quella di tipo Keep Alive invece permette al browser, o in generale al client, di effettuare più richieste HTTP nella stessa connessione.

    La differenza? Considera che il webserver deve spawnare un fork/thread (o recuperarne uno dalla cache dei fork/thread) per gestire la tua connessione e quindi risparmi TANTO lavoro perché dato che la connessione e sempre la stessa non fa nulla in più. Inoltre considera che cosi elimini l'overhead di dato dal kernel e dalle librerie base del so che vanno a gestire il tutto che, se pur minimo, c'è sempre e su un alto numero di connessioni si fa sentire.

    ovviamente ci sono i risvolti della medaglia: un numero troppo elevato di connessioni keep alive permette a chi vuol far danno di killare la macchina! Anche se c'è un timeout (ovvero una durata massima per la connessione keep alive) in quel frangente una singola richiesta viene mantenuta e quindi bisogna fare meno lavoro per saturare le richieste di una macchina ... infatti invece di startare sempre a rotazione, per dire, 100 connessioni ... 10 (mettendo che 10 sia il limite di connessioni keep alive) saranno sempre sature per 15/20 secondi e quindi l'attacker ha bisogno di una potenza di calcolo un pò più ridotta per saturare le connessione ... la conseguenza è che si saturano più facilmente le macchine!

    E' fondamentale trovare un giusto compromesso che non uccida la macchina sotto attacco o sotto carichi elevati e nel frattempo non blocchi il client che tenta di risparmiare operazioni
    Io sono

  3. #3
    Nuovo utente
    Data Registrazione
    Jun 2011
    Messaggi
    17

    Re: usare gli header connection? (close o keepalive?

    Salve,scusate se riutilizzo questo thread ma mi pare il più consono al mio problema.
    Io ho un piccolo pannello in php/mysql creato da me che mi gestisce news con relativo lato amministrativo. Un piccolo cms.
    Il problema è il seguente: nell'header non specifico se la connessione è di tipo keep-alive oppure close (vedo che pochissimi lo impostano).
    Ad ogni modo caricando questo piccolo cms su un dedicato con apache2 e php5 l'header è keep-alive.
    In un altro dedicato con nginx 1.0.4+ php-fpm mi da close.

    Ho cercato molto in giro,ma non ho trovato nessun problema di questo tipo.
    Avete già avuto problemi di questo tipo?
    Io avrei la necessità,per problemi di latenza,di utilizzarlo con il keep-alive,ma non so come muovermi.
    Cosa sbaglio? Devo controllare qualche impostazione particolare su nginx o php-fpm?

    Vi ringrazio anticipatamente.

  4. #4
    Provider L'avatar di guest
    Data Registrazione
    Nov 2007
    Località
    Riccione
    Messaggi
    6,311

    Re: usare gli header connection? (close o keepalive?

    Devi intervenire su nginx, la gestione delle connessioni è fatta lato server.
    Non sono troppo sicuro ma se cambi l'header Connection da PHP il webserver molto probabilmente lo sovrascriverà con il suo.

    Per fare quello che chiedi devi intervenire su nginx.
    http://www.web4web.it - Low Cost Hosting
    Tutti i pacchetti sono multidominio.
    Database e domini illimitati a partire da €10


    http://www.guest.it - Servizi professionali su misura.

  5. #5
    Nuovo utente
    Data Registrazione
    Jun 2011
    Messaggi
    17

    Re: usare gli header connection? (close o keepalive?

    Bene,grazie mille per le informazioni. Veniamo alla parte pratica.
    Avevo già provato a mettere nel .config di nginx:
    keepalive_timeout 70 70;
    keepalive_requests 10;


    riavvio nginx,ma non cambia nulla,tranne che per i file .gif,jpg,js ecc ecc i quali vengono inviati in keep-alive con il timeout impostato,ma i file .php nulla.

    Quello che vedo con live http header sia con il keepalive_timeout sia senza, è la seguente cosa:

    Codice:
    GET /index.php HTTP/1.1
    Host: xxx
    User-Agent: xxx
    Accept: text/html,application/xhtml+xml,application/xml;
    Accept-Language: it-it,it;
    Accept-Encoding: gzip, deflate
    Accept-Charset: ISO-8859-1,utf-8;
    Referer: http://xxx/index.php
    Cookie: xxx
    DNT: 1
    Connection: keep-alive
    
    HTTP/1.1 200 OK
    Server: nginx
    Date: Fri, 01 Jul 2011 20:01:48 GMT
    Content-Type: text/html; charset=iso-8859-1
    Connection: close
    Content-Encoding: gzip
    Vary: Accept-Encoding
    Mentre caricando le immagini (con un refresh) della pagina, la seconda parte del codice diventa:
    Codice:
     HTTP/1.1 200 OK
    Server: nginx
    Date: Fri, 01 Jul 2011 20:01:55 GMT
    Content-Type: image/gif
    Content-Length: 843
    Last-Modified: Mon, 09 Jun 2008 18:54:55 GMT
    Connection: keep-alive
    Keep-Alive: timeout=70
    Accept-Ranges: bytes
    PS: in quest'ultimo pezzo,qualora non imposti il timeout rimane comunque keep-alive.

    Non so proprio come darne fuori.

  6. #6
    Provider L'avatar di guest
    Data Registrazione
    Nov 2007
    Località
    Riccione
    Messaggi
    6,311

    Re: usare gli header connection? (close o keepalive?

    Non ti so aiutare sulla configurazione di nginx, rischierei di dire un sacco di scemenze.
    Altri utenti sul forum lo sanno usare certamente meglio di me.
    http://www.web4web.it - Low Cost Hosting
    Tutti i pacchetti sono multidominio.
    Database e domini illimitati a partire da €10


    http://www.guest.it - Servizi professionali su misura.

  7. #7
    usu
    usu non è collegato
    Utente Moderatore L'avatar di usu
    Data Registrazione
    Apr 2006
    Località
    Milano
    Messaggi
    1,769

    Re: usare gli header connection? (close o keepalive?

    C'è un motivo per il quale hai settato keepalive_requests a 10? Prova a commentarlo e vedere cosa succede.
    Inoltre prova a compilare nginx con il modulo stub_status così hai tutti i dati sulle connessioni effettivamente aperte.

  8. #8
    Nuovo utente
    Data Registrazione
    Jun 2011
    Messaggi
    17

    Re: usare gli header connection? (close o keepalive?

    Per quanto riguarda le keepalive_requests a 10 era solamente un numero come un altro in fase di testing.
    Anche commentandolo/togliendolo il risultato è identico.
    PS: la riga "keepalive_timeout 80 80;" va messa dentro il server { desiderato oppure si deve lasciare come generale fuori da tutto, ma ovviamente dentro http { ?
    Attivando il modulo stub_status ottengo dopo pochi secondi:
    Codice:
    Active connections: 39  
    server accepts handled requests  
    370 370 440  
    Reading: 14 Writing: 2 Waiting: 23
    Dalla documentazione mi pare di capire che le Waiting siano le connessioni keep-alive?
    Fornisce solo questo tipo di statistica oppure anche altre informazioni?

    Quello che vorrei capire io è:
    nell'header ci sono due sezioni:
    1) GET /index.php HTTP/1.1
    2) HTTP/1.1 200 OK

    A livello pratico a me interessa solo la prima,solo la seconda oppure entrambi per avere a tutti gli effetti una connessione keep-alive?

  9. #9
    usu
    usu non è collegato
    Utente Moderatore L'avatar di usu
    Data Registrazione
    Apr 2006
    Località
    Milano
    Messaggi
    1,769

    Re: usare gli header connection? (close o keepalive?

    Citazione Originariamente Scritto da Pietron Visualizza Messaggio
    Per quanto riguarda le keepalive_requests a 10 era solamente un numero come un altro in fase di testing.
    Anche commentandolo/togliendolo il risultato è identico.
    PS: la riga "keepalive_timeout 80 80;" va messa dentro il server { desiderato oppure si deve lasciare come generale fuori da tutto, ma ovviamente dentro http { ?
    Secondo la doc è uguale, io l'ho sempre usato a livello di http.
    Come tutte le direttive in nginx scendendo di livello si overrida la configurazione al livello superiore.

    Citazione Originariamente Scritto da Pietron Visualizza Messaggio
    Attivando il modulo stub_status ottengo dopo pochi secondi:
    Codice:
    Active connections: 39  
    server accepts handled requests  
    370 370 440  
    Reading: 14 Writing: 2 Waiting: 23
    Dalla documentazione mi pare di capire che le Waiting siano le connessioni keep-alive?
    Fornisce solo questo tipo di statistica oppure anche altre informazioni?
    Sì le waiting sono le connessioni restate aperte per via del keep-alive.
    Le info son solo quelle

    Citazione Originariamente Scritto da Pietron Visualizza Messaggio
    Quello che vorrei capire io è:
    nell'header ci sono due sezioni:
    1) GET /index.php HTTP/1.1
    2) HTTP/1.1 200 OK

    A livello pratico a me interessa solo la prima,solo la seconda oppure entrambi per avere a tutti gli effetti una connessione keep-alive?
    Da quello che so in HTTP/1.1 viene dato per scontato che la connessione debba essere di tipo keep-alive, quindi il browser con la GET invia questo parametro, però anche il server deve rispondere con keep-alive, perché se risponde con close il browser non usa più la vecchia connessione, ma ne apre un'altra.

    Mi sembra molto strano come problema, io con nginx 1.0.4 tengo il keep-alive abbastanza alto su più server e funziona perfettamente su tutte le richieste.
    Al massimo prova con una build del branch legacy stable per escludere che sia qualche strano bug introdotto con le ultime.

    Ah un'altra cosa, il problema te lo dà anche con un semplice phpinfo per esempio?

  10. #10
    Nuovo utente
    Data Registrazione
    Jun 2011
    Messaggi
    17

    Re: usare gli header connection? (close o keepalive?

    Versione nginx: 1.0.4
    Con un phpinfo() semplice stessa cosa. Prima parte keep-alive e la seconda in basso close.
    Non so più come darne fuori davvero. Più che altro siamo sicuri al 100% che sia solamente una questione di nginx e non di php-fpm? Dico questo non per mettere in dubbio le vostre conoscenze,ma posso garantirvi che le ho provate davvero tutte.
    Non so se possa essere d'aiuto,ma su php info ho la seguente voce:
    Codice:
    _SERVER["HTTP_CONNECTION"]            keep-alive
    Ciò nonostante l'Header rimane in close la seconda parte.

  11. #11
    Nuovo utente
    Data Registrazione
    May 2011
    Messaggi
    19

    Re: usare gli header connection? (close o keepalive?

    Citazione Originariamente Scritto da Pietron Visualizza Messaggio
    Versione nginx: 1.0.4
    Con un phpinfo() semplice stessa cosa. Prima parte keep-alive e la seconda in basso close.
    Non so più come darne fuori davvero. Più che altro siamo sicuri al 100% che sia solamente una questione di nginx e non di php-fpm? Dico questo non per mettere in dubbio le vostre conoscenze,ma posso garantirvi che le ho provate davvero tutte.
    Non so se possa essere d'aiuto,ma su php info ho la seguente voce:
    Codice:
    _SERVER["HTTP_CONNECTION"]            keep-alive
    Ciò nonostante l'Header rimane in close la seconda parte.
    Io aggiungerei al codice : _SERVER{"HTTP_CONNECTION_REQUIRED"]

  12. #12
    Nuovo utente
    Data Registrazione
    Jun 2011
    Messaggi
    17

    Re: usare gli header connection? (close o keepalive?

    Scusami,che cosa sarebbe "_SERVER{"HTTP_CONNECTION_REQUIRED"}"
    Non ho trovato nessuna info da nessuna parte.
    Dove lo imposto e a cosa serve^

  13. #13
    HT Member
    Data Registrazione
    Jan 2007
    Messaggi
    99

    Re: usare gli header connection? (close o keepalive?

    secondo me è il gzip...

  14. #14
    Nuovo utente
    Data Registrazione
    Jun 2011
    Messaggi
    17

    Re: usare gli header connection? (close o keepalive?

    Ho disabilitato gzip dal conf di nginx,riavviato,ma non cambia nulla,la seconda parte rimane come sempre close.

  15. #15
    Provider L'avatar di guest
    Data Registrazione
    Nov 2007
    Località
    Riccione
    Messaggi
    6,311

    Re: usare gli header connection? (close o keepalive?

    http://www.web4web.it - Low Cost Hosting
    Tutti i pacchetti sono multidominio.
    Database e domini illimitati a partire da €10


    http://www.guest.it - Servizi professionali su misura.

Pagina 1 di 2 12 UltimaUltima

Discussioni Simili

  1. ssh connection
    Di Elaidon nel forum VPS - Virtual Private Server
    Risposte: 14
    Ultimo Messaggio: 05-12-2009, 01:32
  2. [Sendmail] Connection Refused by [127.0.0.1]
    Di TheVice nel forum Gestione Server Windows e Server Linux
    Risposte: 0
    Ultimo Messaggio: 18-07-2009, 14:30
  3. Nuovo Header
    Di Luca nel forum Off-Topic
    Risposte: 8
    Ultimo Messaggio: 26-04-2006, 19:07

Informazioni Discussione

Utenti che Stanno Visualizzando Questa Discussione

Ci sono attualmente 2 utenti che stanno visualizzando questa discussione. (0 utenti e 2 ospiti)

Tag per Questa Discussione

Segnalibri

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •