Η αρχιτεκτονική του Nginx έχει σχεδιαστεί για να επιτυγχάνει υψηλή απόδοση, σταθερότητα και επεκτασιμότητα. Ακολουθεί μια λεπτομερής περιγραφή των βασικών στοιχείων της Nginx αρχιτεκτονικής:
Master Process
Αυτή είναι η κύρια διαδικασία του Nginx, επίσης γνωστή ως γονική διαδικασία. Η ευθύνη της είναι να διαχειρίζεται τις διαδικασίες των εργαζομένων και άλλα κοινά καθήκοντα διαχείρισης. Το master process διαβάζει και επεξεργάζεται τη διαμόρφωση και, στη συνέχεια, δημιουργεί διεργασίες εργασίας για να χειριστεί αιτήματα από πελάτες.
Worker Process
Μόλις δημιουργηθούν από το master process, οι διεργασίες εργασίας γίνονται θυγατρικές διεργασίες του Nginx. Ο αριθμός των εργαζομένων διεργασιών μπορεί να ρυθμιστεί ώστε να ανταποκρίνεται στις απαιτήσεις απόδοσης και πόρων του συστήματος. Κάθε ένα worker process λειτουργεί ανεξάρτητα, δεν μοιράζεται μνήμη και δεν επικοινωνεί απευθείας μεταξύ τους, γεγονός που ενισχύει τη σταθερότητα του Nginx.
Event-driven Architecture
Nginx χρησιμοποιεί ένα event-driven architecture για να χειρίζεται αιτήματα. Αντί να χρησιμοποιεί ξεχωριστά νήματα για κάθε αίτημα, Nginx χρησιμοποιεί ασύγχρονες συναρτήσεις για τη διαχείριση συμβάντων. Αυτό επιτρέπει σε ένα μόνο worker process να χειρίζεται πολλά αιτήματα ταυτόχρονα, βελτιστοποιώντας τους πόρους του συστήματος και διασφαλίζοντας υψηλή απόδοση.
Event Module
Nginx υποστηρίζει διάφορα event module για εργασία με το λειτουργικό σύστημα και την υποδομή δικτύου. Αυτές οι λειτουργικές μονάδες βοηθούν Nginx στην αλληλεπίδραση με τον πυρήνα και αποφεύγουν τον περιττό αποκλεισμό και την αναμονή, μειώνοντας το φόρτο του συστήματος.
Worker Connections
Αυτός είναι ο αριθμός των συνδέσεων που worker process μπορεί να χειριστεί η καθεμία ταυτόχρονα. Αυτή η διαμόρφωση επιτρέπει την προσαρμογή του αριθμού των συνδέσεων για να διασφαλιστεί η βέλτιστη απόδοση με βάση τους πόρους του συστήματος και την κίνηση αιτημάτων πελάτη.
Proxy και Load Balancing
Nginx μπορεί να λειτουργήσει ως proxy διακομιστής, επιτρέποντάς του να δρομολογεί αιτήματα από πελάτες σε διακομιστές εφαρμογών υποστήριξης εντός του συστήματος. Αυτό επιτρέπει την ανάπτυξη κατανεμημένων εφαρμογών και load balancing σε πολλούς διακομιστές, βελτιώνοντας την απόδοση και την αξιοπιστία.
Χάρη στην ευέλικτη και υψηλής απόδοσης αρχιτεκτονική του, Nginx έχει γίνει ένας από τους πιο δημοφιλείς διακομιστές ιστού και διακομιστές μεσολάβησης που χρησιμοποιούνται ευρέως σε όλο τον κόσμο, ικανοποιώντας τις αυξανόμενες απαιτήσεις επεξεργασίας αιτημάτων και δεδομένων στο διαδίκτυο.