Struttura del corso
Protocollo HTTP/1.x
Formato della richiesta e della risposta
Ispezione delle conversazioni HTTP con tcpdump e Wireshark
Controllo delle intestazioni HTTP in un browser Web
Effettuare richieste con CURL
Intestazioni comuni
Richiesta di pipelining
Lunghezza del contenuto e codifica in blocchi
Tipi MIME
Nginx Installazione
Installazione di nginx da pacchetti Debian
Varianti di nginx disponibili in Debian e Ubuntu
Installazione di nginx dai sorgenti
Avvio di nginx
Aggiornamento di nginx
Nginx come file server statico
Struttura generale del file di configurazione
Configurazione degli host virtuali
Configurazione delle posizioni
Ordine di ricerca della posizione
Impostazione delle pagine di errore
Emissione di reindirizzamenti
Altre forme di riscrittura degli URL
Pubblicazione di un'immagine GIF vuota
Posizioni interne e denominate
Override dei tipi MIME
Ottimizzazione delle prestazioni lato client
Consentire ai client di memorizzare le risorse nella cache
The Vary: intestazione
Ridurre al minimo il numero di richieste
Keep-alives
Cosa succede se una risorsa deve essere modificata
In che modo i framework Web gestiscono i file statici
Post-elaborazione dei contenuti
Compressione Gzip
Ridimensionamento dell'immagine
Access Controllo
Limitazione dell'accesso ai file in base all'indirizzo IP
Restrizioni geografiche
Nascondere le directory VCS e i file privati
Autenticazione di base
Altri tipi di autenticazione
Combinazione di restrizioni
Collegamenti sicuri
Applicazione dei limiti
Modellazione del traffico
Raggruppamento delle richieste allo scopo di limitare
Richieste di limitazione della frequenza
Limitazione delle connessioni simultanee
Nginx come proxy inverso
Protocolli upstream supportati
Gestione dei certificati SSL upstream autofirmati
Passaggio di parametri ai backend FastCGI e uWSGI
Proxy delle connessioni websocket
Connettori X-Accel-*
Modifica delle intestazioni ricevute e inviate dall'upstream
Configurazioni del proxy inverso specifiche per la lingua
PHP
Python
Ruby
Nginx come terminatore SSL
Generazione di certificati SSL autofirmati
Ottenere certificati da Let's Encrypt
Limitazione delle crittografie disponibili
Utilizzo dei ticket di sessione
Pinzatura delle risposte OCSP
Verifica della configurazione SSL
Accettazione di certificati lato client
Considerazioni su HTTP/2
Bilanciamento del carico con Nginx
Definizione dei gruppi a monte
Sessioni permanenti con ip_hash
Funzionalità aggiuntive di Nginx Plus come sistema di bilanciamento del carico
Alternative a Nginx e Nginx Plus
Mettere un altro Nginx dietro un Nginx servizio di bilanciamento del carico
Nginx dietro HAProxy o AWS load balancer
Nginx come cache
Dire a nginx di memorizzare le pagine nella cache
Come nginx reagisce alle intestazioni standard relative alla memorizzazione nella cache
Parametri regolabili delle cache
Nginx Skyndiminni contro Skyndiminni á forritsstigi
Svuotare la cache
Distribuzione delle applicazioni Web più diffuse con Nginx
L'elenco delle applicazioni da discutere è determinato dal formatore
Registrazione
Access File di registro e di registro degli errori
Specifica del formato di registro personalizzato
Monitoraggio delle richieste lente
Ottimizzazione della registrazione
Rotazione dei tronchi
Analisi dei log da parte di programmi esterni
Monitoraggio Nginx
Nginx Pagina di stato dello stub
Nginx Più la pagina di stato live estesa
Che cosa i sistemi di monitoraggio di solito tracciano e allertano Nginx
[Facoltativo] Elevata disponibilità con Nginx¹
Come distribuire lo stesso contenuto statico su più server
Condivisione della configurazione
Failover con un indirizzo IP elastico/virtuale
Configurazione di VRRP con Keepalived
Altri stack ad alta disponibilità
Nginx Più l'integrazione con Keepalived
Errori comuni e problemi di sicurezza relativi alla configurazione Nginx
Problemi di prestazioni comuni
¹ La sezione High Availability prevede una configurazione di rete che rende insoddisfatti i sistemi di rilevamento delle intrusioni o richiede la configurazione di più macchine virtuali per partecipante (cosa che nessun altro argomento richiede). Quindi, non è fornito per impostazione predefinita.
Requisiti
I partecipanti devono avere dimestichezza con una riga di comando Linux e avere una conoscenza pratica di TCP/IP