La prima parte di questo articolo di nginx parlava dell'architettura e del file di configurazione principale di nginx. Questo articolo continua da lì e parla degli elementi essenziali di nginx: i moduli necessari e altre tecniche di configurazione avanzate.
Il vero potere di nginx risiede nei suoi moduli. L'intero stack può essere immaginato come composto da moduli che migliorano o si basano sulle funzionalità del core nginx. Per utilizzarli, devono essere abilitati durante la compilazione dal sorgente e non possono essere abilitati in fase di esecuzione.
Alcuni moduli vengono compilati automaticamente se non diversamente specificato. Di questi, diamo un'occhiata ad alcuni di quelli interessanti e vediamo quali sono ampiamente utilizzati.
Accesso (ngx_http_access_module): Ciò consente di limitare l'accesso a determinati indirizzi IP.
posizione / negare 192.168.1.1; consentire 192.168.1.0/24; consentire 10.1.1.0/16; allow 2001: 0db8 :: / 32; negare tutto;
Autenticazione HTTP (ngx_http_auth_basic_module): Permette di limitare l'accesso tramite HTTP Basic Auth (nome utente / password).
posizione / auth_basic "password"; auth_basic_user_file conf / htpasswd;
sotto richiesta Auth (ngx_http_auth_request_module): Implementa l'autorizzazione del client in base al risultato di un sottorequest.
Limitare le connessioni (ngx_http_limit_conn_module): Consente di definire il numero massimo di connessioni simultanee da un singolo indirizzo IP.
Richieste limite (ngx_http_limit_req_module): Limita il numero di richieste da un singolo IP.
La maggior parte dei moduli che sono inclusi in nginx e possono essere abilitati durante la compilazione sono elencati qui in grande dettaglio. Vediamo invece alcuni moduli di terze parti che possono essere davvero utili.
Questi moduli devono essere scaricati e quindi compilati con nginx come quello che vedi nella seguente riga di codice (presumendo che tu stia lavorando nella directory dei sorgenti di nginx):
./ configure --add-module = / percorso / a / modulo / sorgente
Il wiki di nginx elenca alcuni dei ben noti moduli di terze parti. Di tutti questi, parliamo di un modulo che riscrive le pagine Web e le risorse associate per ridurre la latenza e la larghezza di banda.
Questo è un modulo nginx sviluppato da Google nell'ambito del progetto PageSpeed. Lo scopo è ovviamente quello di migliorare i tempi di caricamento della pagina con l'aiuto di un modulo nginx che ottimizza il traffico.
Puoi installare questo modulo seguendo il tutorial 'Installa ngx_pagespeed'. Questo modulo è altamente raccomandato come un must sui tuoi server!
Streaming live, registrazione, transcodifica online, tecniche avanzate di buffering. È davvero facile iniziare a usarlo.
Un modulo push del flusso http per nginx. Supporta il polling lungo di EventSource. Esempio: WebSocket.
Durante l'utilizzo di nginx, diventa anche importante utilizzare le seguenti utilità di nginx di supporto: