Course Outline
Πρωτόκολλο HTTP/1.x Μορφή αιτήματος και απόκρισης Έλεγχος συνομιλιών HTTP με tcpdump και Wireshark Έλεγχος κεφαλίδων HTTP σε πρόγραμμα περιήγησης ιστού Υποβολή αιτημάτων με CURL Συνήθεις κεφαλίδες Αίτημα διοχέτευσης Μήκος περιεχομένου και τεμαχισμένη κωδικοποίηση Τύποι MIME
Nginx εγκατάσταση Εγκατάσταση του nginx από πακέτα Debian
Παραλλαγές του nginx διαθέσιμες στο Debian και UbuntuΕγκατάσταση του nginx από την πηγήΈναρξη του nginxΑναβάθμιση του nginxNginx ως διακομιστής στατικών αρχείων Γενική δομή του αρχείου διαμόρφωσηςΡύθμιση εικονικών κεντρικών υπολογιστών
Διαμόρφωση τοποθεσιώνΕντολή αναζήτησης τοποθεσίαςΡύθμιση σελίδων σφαλμάτωνΈκδοση ανακατευθύνσεωνΆλλες μορφές επανεγγραφής URLΠροβολή κενού εικόνας GIFΕσωτερικές και επώνυμες τοποθεσίεςΠαράκαμψη τύπων MIMEΒελτιστοποίηση απόδοσης από την πλευρά του πελάτη Επιτρέποντας στους πελάτες να αποθηκεύουν πόρους στην κρυφή μνήμηΤο Vary: κεφαλίδαΕλαχιστοποίηση του αριθμού των αιτημάτων
Keep-livesΤι γίνεται αν ένας πόρος πρέπει να αλλάξειΠώς τα πλαίσια web αντιμετωπίζουν στατικά αρχείαΣυμπίεση Gzip μετά την επεξεργασία περιεχομένουΚλιμάκωση εικόναςΈλεγχος Access Περιορισμός πρόσβασης σε αρχεία με βάση τη διεύθυνση IPΓεωγραφικοί περιορισμοί
Απόκρυψη καταλόγων VCS και ιδιωτικών αρχείωνΒασικός έλεγχος ταυτότηταςΆλλοι τύποι ελέγχου ταυτότητας
Συνδυασμός περιορισμώνΑσφαλείς συνδέσμουςΕφαρμογή ορίων Διαμόρφωση κυκλοφορίαςΟμαδοποίηση αιτημάτων με σκοπό τον περιορισμόΑιτήματα περιορισμού ποσοστούΠεριορισμός ταυτόχρονων συνδέσεωνNginx ως αντίστροφος διακομιστής μεσολάβησης Υποστηριζόμενα πρωτόκολλα ανοδικής ροήςΑντιμετώπιση αυτουπογεγραμμένων πιστοποιητικών SSL
Μεταβίβαση παραμέτρων στα backends FastCGI και uWSGIΔιανομή συνδέσεων websocketΚεφαλίδες X-Accel-*Τροποποίηση κεφαλίδων που λαμβάνονται και αποστέλλονται από το upstreamΡυθμίσεις αντίστροφου διακομιστή μεσολάβησης για συγκεκριμένη γλώσσα PHP
PythonRubyNginx ως τερματιστής SSL Δημιουργία αυτουπογεγραμμένων πιστοποιητικών SSLΛήψη πιστοποιητικών από το Let's EncryptΠεριορισμός διαθέσιμων κρυπτογράφησηςΕργασία με εισιτήρια συνεδρίαςΣυρραφή αποκρίσεων OCSP
Επαλήθευση διαμόρφωσης SSLΑποδοχή πιστοποιητικών από την πλευρά του πελάτηHTTP/2 εκτιμήσειςΕξισορρόπηση φορτίου με Nginx Καθορισμός ομάδων ανάντη
Συνεχείς συνεδρίες χρησιμοποιώντας ip_hashΕπιπλέον χαρακτηριστικά του Nginx Plus ως εξισορροπητή φορτίουΕναλλακτικές λύσεις για τα Nginx και Nginx PlusΤοποθετώντας ένα άλλο Nginx πίσω από ένα Nginx εξισορροπητή φορτίουNginx πίσω από τον εξισορροπητή φορτίου HAProxy ή AWSNginx ως προσωρινή μνήμη Ενημερώνοντας το nginx στις σελίδες προσωρινής αποθήκευσηςΠώς αντιδρά το nginx σε τυπικές κεφαλίδες που σχετίζονται με την προσωρινή αποθήκευσηΣυντονίσιμες παράμετροι κρυφής μνήμηςNginx cache vs cache σε επίπεδο εφαρμογής
Εκκαθάριση της προσωρινής μνήμηςΑνάπτυξη δημοφιλών διαδικτυακών εφαρμογών με Nginx Η λίστα των εφαρμογών που θα συζητηθούν καθορίζεται από τον εκπαιδευτήΚαταγραφή Access αρχείων καταγραφής και καταγραφής σφαλμάτωνΚαθορισμός προσαρμοσμένης μορφής αρχείου καταγραφήςΠαρακολούθηση αργών αιτημάτωνΒελτιστοποίηση καταγραφήςΠεριστροφή ημερολογίου
Ανάλυση αρχείων καταγραφής από εξωτερικά προγράμματαΠαρακολούθηση Nginx Nginx σελίδα κατάστασης στέλεχοςNginx Συν εκτεταμένη ζωντανή σελίδα κατάστασηςΠοια συστήματα παρακολούθησης συνήθως σχεδιάζουν και ειδοποιούν σχετικά με Nginx[προαιρετικό] Υψηλή διαθεσιμότητα με Nginx¹ Πώς να αναπτύξετε το ίδιο στατικό περιεχόμενο σε πολλούς διακομιστέςΚοινή χρήση διαμόρφωσης
Αποτυχία με χρήση ελαστικής/εικονικής διεύθυνσης IPΡύθμιση VRRP με το Keepalived
Άλλες στοίβες υψηλής διαθεσιμότηταςNginx Συν ενσωμάτωση με το KeepalivedΣυνήθη λάθη και ζητήματα ασφάλειας που σχετίζονται με τη διαμόρφωση NginxΣυνήθη προβλήματα απόδοσης¹ Η ενότητα Υψηλή διαθεσιμότητα περιλαμβάνει μια ρύθμιση δικτύου που κάνει τα συστήματα ανίχνευσης εισβολών δυσαρεστημένα ή απαιτεί τη ρύθμιση πολλών εικονικών μηχανών ανά συμμετέχοντα (που δεν χρειάζεται άλλο θέμα). Άρα, δεν παρέχεται από προεπιλογή.
Requirements
Οι συμμετέχοντες πρέπει να είναι άνετοι με μια γραμμή εντολών Linux και να έχουν εργασιακή γνώση του TCP/IP