Come regolare nginx keepalive_timeout?


12

Sto usando nginx insieme a php-fpm per server un sito basato su mysql occupato. Attualmente sto usando keepalive_timeout = 5, tuttavia non ho idea chiara di come regolarlo in modo ottimale. Quindi apprezzo i tuoi suggerimenti.

Risposte:


10

Di cosa hai bisogno per adattarlo, o meglio: stai riscontrando problemi con averlo impostato come fai?

Non esiste una buona risposta valida per tutti; se la maggior parte dei browser client è in grado di caricare tutte le risorse su una pagina in 5 secondi, 5 secondi vanno bene, ma dipende completamente dalle esigenze della tua applicazione - se il tuo server nginx fungeva da proxy inverso per Exchange ActiveSync, ad esempio, lo vorresti girare fino a mezz'ora.


Bene, sto cercando di ridurre al minimo il carico del server (che è piuttosto elevato nei tempi di prelievo), e immagino che l'ottimizzazione di keepalive_timeout possa parzialmente contribuire a questo obiettivo. A parte questo è solo una curiosità salutare :)
Alfish

1
Certo - quindi, praticamente "il più basso possibile senza dare il via alla maggior parte dei client prima di caricare la pagina" - quindi se le tue pagine si caricano in meno di un secondo per la maggior parte dei tuoi clienti, allora un timeout di 1 secondo andrà bene. Ma, a meno che il timeout non sia molto, molto superiore a 5 secondi, è improbabile che sia una delle principali cause del carico del server.
Shane Madden

Questo è il punto difficile. Come posso determinare il tempo di caricamento della pagina, data la differenza nel tempo di caricamento delle pagine (alcuni sono più pesanti di altri), le velocità di connessione del visitatore, ecc.
Alfish

Basta ballpark it. È improbabile che qualche secondo in un modo o nell'altro faccia una sostanziale differenza nel carico, quindi sentiti libero di stimare in alto - ma poi di nuovo, una nuova build di una connessione TCP (anche con un handshake SSL, se applicabile) per un client a caricamento lento non farà una grande differenza nella loro velocità di caricamento complessiva.
Shane Madden

1
@ShaneMadden, che 5 secondi non sono la durata della connessione, ma solo un timeout durante il quale il server attende un'altra richiesta fino a keepalive_requests. Quindi non è importante quanto tempo ci vuole per caricare l'intera pagina, solo per l'html fino a quando il browser inizia a recuperare immagini / CSS ... BTW il max. il tempo di connessione rimane aperto è quasikeepalive_timeout*keepalive_requests
Marki555
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.