GNU/Linux >> Linux Esercitazione >  >> Linux

Come ottenere le migliori prestazioni dal server Nginx

Puoi regolare quasi tutte le impostazioni, ma questo post si concentra sulle poche impostazioni per le quali l'ottimizzazione avvantaggia la maggior parte degli utenti. Ci sono impostazioni che ti consigliamo di modificare solo se hai una profonda conoscenza di NGINX e Linux. Quindi, saprai come ottenere le migliori prestazioni dal server Nginx

Ciao ragazzi!, In questo post vediamo fondamentalmente l'ottimizzazione di NGINX usando il suo file di configurazione che si trova in /etc/nginx/nginx.conf

NGINX è noto come sistema di bilanciamento del carico, cache e server Web ad alte prestazioni, che alimenta oltre il 40% dei siti Web più trafficati del mondo. Per la maggior parte dei casi d'uso, le impostazioni predefinite di NGINX e Linux funzionano bene, ma il raggiungimento di prestazioni ottimali a volte richiede un po' di ottimizzazione. Questo post del blog discute alcune delle impostazioni NGINX e Linux da considerare durante l'ottimizzazione di un sistema.

Processi dei lavoratori

NGINX può eseguire più processi di lavoro, ciascuno in grado di elaborare un gran numero di connessioni simultanee. Puoi controllare il numero di processi di lavoro e come gestiscono le connessioni con le seguenti direttive

processi_lavoratori

Il numero di processi di lavoro NGINX (il valore predefinito è 1). Nella maggior parte dei casi, l'esecuzione di un processo di lavoro per core della CPU funziona bene e si consiglia di impostare questa direttiva su auto per ottenere ciò. Ci sono momenti in cui potresti voler aumentare questo numero, ad esempio quando i processi di lavoro devono eseguire molte operazioni di I/O su disco.

collegamenti_lavoratori

Il numero massimo di connessioni che ogni processo di lavoro può gestire contemporaneamente. Il valore predefinito è 512, ma la maggior parte dei sistemi dispone di risorse sufficienti per supportare un numero maggiore. L'impostazione appropriata dipende dalle dimensioni del server e dalla natura del traffico e può essere individuata tramite test.

Mantieni i collegamenti

Keepalive Connections può avere un forte impatto sulle prestazioni riducendo il sovraccarico della CPU e della rete necessari per aprire e chiudere le connessioni. NGINX termina tutte le connessioni client e crea connessioni separate e indipendenti ai server upstream. NGINX supporta keepalive sia per i client che per i server upstream. Le seguenti direttive si riferiscono ai client keepalive:

Keepalive_requests

Il numero di richieste che un client può effettuare su una singola connessione keep-alive. Il valore predefinito è 100, ma un valore molto più alto può essere particolarmente utile per i test con uno strumento di generazione del carico, che generalmente invia un gran numero di richieste da un singolo client.

keepalive_timeout

Per quanto tempo rimane aperta una connessione keep-alive inattiva.
La seguente direttiva riguarda i keepalive a monte

tenere vivo

Il numero di connessioni keepalive inattive a un server upstream che rimangono aperte per ogni processo di lavoro. Non esiste un valore predefinito.

Per abilitare le connessioni keepalive ai server upstream è necessario includere anche le seguenti direttive nella configurazione:

Registrazione degli accessi

La registrazione di ogni richiesta consuma sia la CPU che i cicli di I/O e un modo per ridurre l'impatto è abilitare il buffering del registro degli accessi. Con il buffering, invece di eseguire un'operazione di scrittura separata per ogni voce di registro, NGINX memorizza nel buffer una serie di voci e le scrive insieme nel file in un'unica operazione.

Le voci di registro vengono scritte anche quando un processo di lavoro riapre i propri file di registro o si arresta. Per disabilitare completamente la registrazione degli accessi, includi il parametro off nella direttiva access_log.

Invia file

La chiamata di sistema sendfile() del sistema operativo copia i dati da un descrittore di file a un altro, ottenendo spesso la copia zero, che può accelerare i trasferimenti di dati TCP. Per consentire a NGINX di utilizzarlo, includi la direttiva sendfile nel contesto http o in un contesto di server o posizione. NGINX può quindi scrivere contenuto memorizzato nella cache o su disco in un socket senza che il contesto passi allo spazio utente, rendendo la scrittura estremamente veloce e consumando meno cicli della CPU. Si noti, tuttavia, che poiché i dati copiati con sendfile() ignorano lo spazio utente, non sono soggetti alla normale catena di elaborazione NGINX e ai filtri che modificano il contenuto, come gzip. Quando un contesto di configurazione include sia la direttiva sendfile che le direttive che attivano un filtro di modifica del contenuto, NGINX disabilita automaticamente sendfile per quel contesto.

Quindi, sai già come ottenere le migliori prestazioni dal server Nginx

Sito web di Nginx


Linux
  1. Linux:come ottenere tutti i registri di accesso dal sistema?

  2. Utilizzo di openssl per ottenere il certificato da un server

  3. Come faccio a far funzionare in background il mio server web Golang?

  4. Come ottenere l'URL del file Dropbox dalla riga di comando?

  5. Come ottengo il mio indirizzo IP dalla riga di comando?

Come installare Nginx su Fedora 22

Come installare NGINX su Ubuntu 20.04

Come installare Nginx su CentOS 7

Come configurare NGINX su un server CentOS 7

Come posso ottenere messaggi di registro dal server LAMP su Ubuntu 10.04?

Come posso ottenere la lunghezza di un file video dalla console?