Schița de curs
Protocolul HTTP/1.x Format de solicitare și răspuns Inspectarea conversațiilor HTTP cu tcpdump și Wireshark Inspectarea antetelor HTTP într-un browser web Efectuarea de solicitări cu CURL Antete obișnuite Conduire a cererilor Lungimea conținutului și tipurile MIME de codificare în bucăți
Nginx instalare Instalarea nginx din pachetele Debian
Variante de nginx disponibile în Debian și UbuntuInstalarea nginx din sursăPornește nginxActualizarea nginxNginx ca server de fișiere static Structura generală a fișierului de configurareConfigurarea gazdelor virtuale
Configurarea locațiilorOrdinea de căutare a locațieiConfigurarea paginilor de eroareEmiterea de redirecționăriAlte forme de rescriere URLSe difuzează o imagine GIF goalăLocații interne și denumiteSuprascrierea tipurilor MIMEOptimizarea performanței la nivelul clientului Permite clienților să memoreze resursele în cacheVariația: antetMinimizarea numărului de solicitări
Păstrați-n viațăCe se întâmplă dacă o resursă trebuie să se schimbeCum se ocupă cadrele web cu fișierele staticeComprimarea Gzip post-procesare a conținutuluiScalare a imaginiiAccess control Restricționarea accesului la fișiere pe baza adresei IPRestricții geografice
Ascunderea directoarelor VCS și a fișierelor privateAutentificare de bazăAlte tipuri de autentificare
Combinarea restricțiilorLegături securizateAplicarea limitelor Modelarea traficuluiGruparea cererilor în scopul limităriiCereri de limitare a rateiRestricționarea conexiunilor simultaneNginx ca proxy invers Protocoale în amonte acceptateSe ocupă de certificatele SSL în amonte autosemnate
Transmiterea parametrilor către backend-urile FastCGI și uWSGIProxy conexiuni websocketAntete X-Accel-*Modificarea antetelor primite și trimise de către upstreamConfigurații proxy invers specifice limbii PHP
PythonRubyNginx ca un terminator SSL Generarea de certificate SSL autosemnateObținerea certificatelor de la Let's EncryptRestricționarea cifrurilor disponibileLucrul cu bilete de sesiuneCapsarea răspunsurilor OCSP
Se verifică configurația SSLAcceptarea certificatelor la nivelul clientuluiConsiderații privind HTTP/2Echilibrarea sarcinii cu Nginx Definirea grupurilor din amonte
Sesiuni sticky folosind ip_hashCaracteristici suplimentare ale Nginx Plus ca echilibrator de sarcinăAlternative la Nginx și Nginx PlusPune un alt Nginx în spatele unui Nginx echilibrator de sarcinăNginx în spatele HAProxy sau AWS load balancerNginx ca cache. Spune lui nginx să memoreze paginileCum reacționează nginx la anteturile standard legate de cacheParametri reglabili ai cache-urilorNginx cache vs cache la nivel de aplicație
Golirea memoriei cacheImplementarea aplicațiilor web populare cu Nginx Lista aplicațiilor de discutat este determinată de formatorÎnregistrare Access fișiere jurnal și eroriSpecificarea formatului de jurnal personalizatUrmărirea solicitărilor lenteOptimizarea jurnalelorRotirea buștenilor
Analiza jurnalelor prin programe externeMonitorizare Nginx Nginx pagina de stare stubNginx Plus o pagină de stare live extinsăDespre ce sisteme de monitorizare complotează și alertează de obicei Nginx[opțional] Disponibilitate ridicată cu Nginx¹ Cum să implementați același conținut static pe mai multe serverePartajarea configurației
Fail-over folosind o adresă IP elastică/virtualăConfigurarea VRRP cu Keepalived
Alte stive de mare disponibilitateNginx Plus integrare cu KeepalivedGreșeli obișnuite și probleme de securitate legate de configurarea Nginx.Probleme comune de performanță¹ Secțiunea Disponibilitate ridicată implică o configurare a rețelei care face nemulțumită sistemele de detectare a intruziunilor sau necesită configurarea mai multor mașini virtuale per participant (de care niciun alt subiect nu are nevoie). Deci, nu este furnizat implicit.
Cerințe
Participanții trebuie să se simtă confortabil cu o linie de comandă Linux și să aibă cunoștințe practice de TCP/IP.