Apache & Nginx. Συνδέεται με μία αλυσίδα

Πώς υλοποιείται ο συνδυασμός Apache & Nginx στο Timeweb

Για πολλές εταιρείες, το Nginx + Apache + PHP είναι ένας πολύ τυπικός και κοινός συνδυασμός και το Timeweb δεν αποτελεί εξαίρεση. Ωστόσο, η κατανόηση του πώς ακριβώς εφαρμόζεται μπορεί να είναι ενδιαφέρουσα και χρήσιμη.

Apache & Nginx. Συνδέεται με μία αλυσίδα

Η χρήση ενός τέτοιου συνδυασμού υπαγορεύεται φυσικά από τις ανάγκες των πελατών μας. Τόσο το Nginx όσο και το Apache παίζουν έναν ιδιαίτερο ρόλο, το καθένα λύνει ένα συγκεκριμένο πρόβλημα.

βασικές ρυθμίσεις Apache εκτελούνται στα αρχεία διαμόρφωσης του ίδιου του Apache και οι ρυθμίσεις για τοποθεσίες πελατών πραγματοποιούνται μέσω αρχείο .htaccess. Το .htaccess είναι ένα αρχείο διαμόρφωσης στο οποίο ο πελάτης μπορεί να διαμορφώσει ανεξάρτητα τους κανόνες και τη συμπεριφορά του διακομιστή web. Αυτή η ρύθμιση θα ισχύει ειδικά για τον ιστότοπό του. Για παράδειγμα, χάρη στη λειτουργία Apache, οι χρήστες μπορούν να αλλάξουν τον τρόπο λειτουργίας στην ίδια έκδοση PHP από mod_php σε mod_cgi. μπορείτε να ρυθμίσετε ανακατευθύνσεις, βελτιστοποίηση για SEO, βολικό URL, ορισμένα όρια για PHP.

nginx χρησιμοποιείται ως διακομιστής μεσολάβησης για την ανακατεύθυνση της κυκλοφορίας στον Apache και ως διακομιστής ιστού για την εξυπηρέτηση στατικού περιεχομένου. Έχουμε επίσης αναπτύξει ενότητες ασφαλείας για το Nginx που μας επιτρέπουν να προστατεύουμε τα δεδομένα των χρηστών μας, για παράδειγμα, να διαχωρίζουμε τα δικαιώματα πρόσβασης.

Ας φανταστούμε ότι ένας χρήστης επισκέπτεται τον ιστότοπο του πελάτη μας. Αρχικά, ο χρήστης μεταβαίνει στο Nginx, το οποίο εξυπηρετεί στατικό περιεχόμενο. Συμβαίνει ακαριαία. Στη συνέχεια, όταν πρόκειται για τη φόρτωση της PHP, το Nginx προωθεί το αίτημα στον Apache. Και ο Apache, μαζί με την PHP, παράγει ήδη δυναμικό περιεχόμενο.

Χαρακτηριστικά του πακέτου Apache & Nginx στο Timeweb

Η εικονική φιλοξενία μας εφαρμόζει 2 βασικά σχήματα λειτουργίας για Apache & Nginx: Κοινή χρήση και αφιερωμένη.

Κοινό σχέδιο

Αυτό το σχήμα χρησιμοποιείται για τους περισσότερους χρήστες. Διακρίνεται για την απλότητα και την ένταση των πόρων του: το Κοινόχρηστο σχήμα χρησιμοποιεί λιγότερους πόρους, γι' αυτό και το τιμολόγιο του είναι φθηνότερο. Σύμφωνα με αυτό το σχήμα, ο διακομιστής εκτελεί ένα Nginx, το οποίο του επιτρέπει να εξυπηρετεί όλα τα αιτήματα των χρηστών και αρκετές περιπτώσεις Apache.

Το πρόγραμμα Shared βελτιώνεται εδώ και πολύ καιρό: σταδιακά διορθώσαμε τις ελλείψεις. Βολικά, μπορεί να γίνει χωρίς να χρειάζεται να τροποποιήσετε τον πηγαίο κώδικα.

Apache & Nginx. Συνδέεται με μία αλυσίδα
Κοινό σχέδιο

Αφιερωμένο σχέδιο

Το ειδικό απαιτεί περισσότερους πόρους, επομένως το τιμολόγιο του είναι πιο ακριβό για τους πελάτες. Στο πρόγραμμα Dedicated, κάθε πελάτης λαμβάνει το δικό του ξεχωριστό Apache. Οι πόροι εδώ προορίζονται για τον πελάτη, διατίθενται αποκλειστικά. Πώς λειτουργεί: Υπάρχουν πολλές εκδόσεις της PHP στον διακομιστή. Υποστηρίζουμε τις εκδόσεις 5.3, 5.4, 5.6, 7.1, 7.2, 7.3, 7.4. Έτσι, για κάθε έκδοση της PHP εκκινείται το δικό του Apache.

Apache & Nginx. Συνδέεται με μία αλυσίδα
Αφιερωμένο σχέδιο

Ασφαλής ζώνη. Ρύθμιση ζωνών στο Nginx

Προηγουμένως, για το Nginx, χρησιμοποιούσαμε πολλές ζώνες κοινής μνήμης (ζώνες) - ένα μπλοκ διακομιστή ανά τομέα. Αυτή η ρύθμιση απαιτεί πολλούς πόρους, καθώς δημιουργείται μια ξεχωριστή ζώνη για κάθε τοποθεσία. Ωστόσο, στις ρυθμίσεις Nginx, οι περισσότεροι ιστότοποι είναι του ίδιου τύπου, επομένως μπορούν να τοποθετηθούν σε μία ζώνη χάρη στη χρήση οδηγιών χαρτών στη μονάδα ngx_http_map_module, που σας επιτρέπουν να καθορίσετε αντιστοιχίες. Για παράδειγμα, έχουμε ένα πρότυπο ζώνης στο οποίο πρέπει να παρέχουμε μεταβλητές: διαδρομή προς τον ιστότοπο, έκδοση PHP, χρήστης. Έτσι, η εκ νέου ανάγνωση της διαμόρφωσης Nginx, δηλαδή η επαναφόρτωση, επιταχύνθηκε.

Αυτή η διαμόρφωση εξοικονόμησε σημαντικά τους πόρους RAM και επιτάχυνε το Nginx.

Η επαναφόρτωση δεν θα λειτουργήσει!

Στο σχήμα Shared, απαλλαγήκαμε από την ανάγκη επαναφόρτωσης του Apache κατά την αλλαγή των ρυθμίσεων ιστότοπου. Προηγουμένως, όταν ένας πελάτης ήθελε να προσθέσει έναν τομέα ή να αλλάξει την έκδοση της PHP, απαιτούνταν υποχρεωτική επαναφόρτωση του Apache, η οποία οδήγησε σε καθυστερήσεις στις απαντήσεις και επηρέαζε αρνητικά την απόδοση του ιστότοπου.

Ξεφορτωθήκαμε τις επαναφορτώσεις δημιουργώντας δυναμικές διαμορφώσεις. Χάρη σε mpm-itk (μονάδα Apache), κάθε διεργασία εκτελείται ως ξεχωριστός χρήστης, γεγονός που αυξάνει το επίπεδο ασφάλειας. Αυτή η μέθοδος σάς επιτρέπει να μεταφέρετε δεδομένα σχετικά με τον χρήστη και το document_root του από το Nginx στο Apache2. Έτσι, το Apache δεν περιέχει διαμορφώσεις τοποθεσιών, τις λαμβάνει δυναμικά και δεν απαιτούνται πλέον επαναφορτώσεις.

Apache & Nginx. Συνδέεται με μία αλυσίδα
Κοινόχρηστη διαμόρφωση σχήματος

Τι γίνεται με το Docker;

Πολλές εταιρείες έχουν μετακινηθεί σε ένα σύστημα που βασίζεται σε εμπορευματοκιβώτια. Η Timeweb εξετάζει αυτήν τη στιγμή το ενδεχόμενο μιας τέτοιας μετάβασης. Φυσικά, υπάρχουν πλεονεκτήματα και μειονεκτήματα σε κάθε απόφαση.

Μαζί με τα αναμφισβήτητα πλεονεκτήματα, το σύστημα κοντέινερ παρέχει στο χρήστη λιγότερους πόρους. Στο Timeweb, χάρη στο περιγραφόμενο σχήμα φιλοξενίας, ο χρήστης δεν έχει περιορισμό στη μνήμη RAM. Λαμβάνει περισσότερους πόρους από ό,τι στο κοντέινερ. Επιπλέον, ο χρήστης μπορεί να έχει φορτώσει περισσότερες μονάδες Apache.

Το Timeweb τροφοδοτεί περίπου 500 ιστότοπους. Αναλαμβάνουμε μεγάλη ευθύνη και δεν κάνουμε στιγμιαίες, αδικαιολόγητες αλλαγές σε πολύπλοκη αρχιτεκτονική. Ο συνδυασμός Apache & Nginx είναι αξιόπιστος και δοκιμασμένος στο χρόνο. Εμείς, με τη σειρά μας, προσπαθούμε να επιτύχουμε τη μέγιστη απόδοση μέσω μοναδικών διαμορφώσεων.

Για υψηλής ποιότητας και γρήγορη λειτουργία μεγάλου αριθμού τοποθεσιών, πρέπει να χρησιμοποιήσετε ένα πρότυπο και δυναμική διαμόρφωση των Apache και Nginx. Σας επιτρέπει να διαχειρίζεστε εύκολα και γρήγορα μεγάλο αριθμό παρόμοιων διακομιστών.

Πηγή: www.habr.com

Προσθέστε ένα σχόλιο