Corsi on-line

Configurazioni Top Level in Nginx

Se utilizzate il Web server Open Source Nginx in alternativa a soluzioni come Apache per la gestione delle chiamate HTTP nel vostro ambiente di produzione o sviluppo, potrebbero risultarvi utili alcune configurazioni di base attraverso le quali rendere più performante l’installazione dell’engine; in sostanza parliamo di modifiche che potranno essere apportate al file nginx.conf (percorso /etc/nginx nel file system) che ha il compito di gestire le impostazioni del Web server e il caricamento dei vari moduli.

nginx

In questo post ci occuperemo nello specifico delle configurazioni Top Level che vengono indicate attraverso le direttive contenute nel primo blocco di nginx.conf:

user www-data;
pid /var/run/nginx.pid;
worker_processes auto;
worker_rlimit_nofile 100000;

Le prime due voci da settare saranno quelle riguardanti l’utente di sistema di riferimento per l’engine (user) e il pid (Process IDentifier o, in Italiano, IDentificatore di Processo). In entrambi i casi è consigliabile non modificare le impostazioni predefinite, questo perché in buona parte delle distro www-data è l’utente sotto il quale viene eseguito l’engine e tutte le operazioni effettuate attraverso di esso (si pensi per esempio al funzionamento degli script SSI) avvengono grazie al suo permesso e dell’omonimo gruppo di cui fa parte; stesso discorso per il PID, la cui assegnazione avviene sulla base di criteri variabili a seconda dello sistema operativo utilizzato.

La direttiva worker_processes serve invece per definire il numero di processi che il Web server dovrà (o dovrebbe) utilizzare nell’interazione con il client nel momento in cui vengono richieste le risorse relative ad un sito Web; nel nostro esempio abbiamo associato ad essa il valore auto, infatti, per disporre di un settaggio ottimale bisognerebbe tenere conto di alcuni fattori come per esempio la quantità di core messa a disposizione dalla CPU e di drive destinati all’allocazione dei dati; auto permetterà ad nginx di rilevare automaticamente il numero di core nel caso tale informazione non sia disponibile.

Infine, worker_rlimit_nofile è una direttiva che consente di indicare il limite massimo di file aperti per i worker processes, nel caso in cui tale valore non sia stato definito l’onere di settare un limite spetterà al sistema. Dopo il blocco Top Level in nginx.conf troverete un altro blocco denominato events in cui è presente la direttiva worker_connections, essa specifica quante connessioni potranno essere mantenute da un worker e, dato che tutte le connessioni TCP sono dei descriptors (quindi dei file handles), dovrebbe essere buona norma impostare worker_rlimit_nofile con un valore superiore a quello di worker_connections.

Le configurazioni indicate andranno ad influenzare quelle successive secondo modalità che analizzeremo presto in un prossimo post.

Post correlati
I più letti del mese
Tematiche