Ο NGINX είναι ένας δημοφιλής, δωρεάν και ανοιχτού κώδικα διακομιστή ιστού. Οι προεπιλεγμένες διαμορφώσεις NGINX είναι αρκετά καλές για να λειτουργήσει ο διακομιστής web.
Ωστόσο, εάν θέλετε να χρησιμοποιήσετε το NGINX στο έπακρο, πρέπει να παίξετε με τα αρχεία διαμόρφωσής του και να ορίσετε τις παραμέτρους που θα βελτιστοποιήσουν την απόδοση του διακομιστή. Θα βρείτε τα αρχεία ρυθμίσεων στο /etc/nginx κατάλογο σε μηχανή Linux.
Τι είναι το NGINX;
Ο NGINX είναι ένας σύγχρονος διακομιστής ιστού που μπορείτε να χρησιμοποιήσετε ως streamer πολυμέσων, διακομιστή αλληλογραφίας, αντίστροφος διακομιστής μεσολάβησης, εξισορρόπηση φορτίου, διακομιστή προσωρινής μνήμης και πολλά άλλα.
Χρησιμοποιείται από πολλά μεγάλα προφίλ όπως VMware, IBM, Cisco, Apple, Microsoft LinkedIn, Netflix, Facebook, Twitter κ.λπ., το NGINX είναι ευρέως γνωστό για τις κορυφαίες επιδόσεις του. Ένα άλλο πλεονέκτημα της χρήσης του NGINX είναι ότι είναι εύκολο στη διαμόρφωση και την εκμάθηση.
Προϋποθέσεις για συντονισμό της απόδοσης NGINX σε Linux
Πρέπει να ικανοποιήσετε τις ακόλουθες απαιτήσεις πριν ξεκινήσετε με τις διαμορφώσεις NGINX:
- Ένας διακομιστής NGINX που αναπτύχθηκε και διαμορφώθηκε σε Linux
- Μια βασική κατανόηση του NGINX και των αρχείων διαμόρφωσής του
Εάν πληροίτε αυτές τις απαιτήσεις, είστε έτοιμοι να συντονίσετε το NGINX για βέλτιστη απόδοση. Ας δούμε πώς να το κάνουμε.
1. Διαμορφώστε τις διαδικασίες εργασίας στο NGINX
Η αρχιτεκτονική NGINX αποτελείται από μια κύρια διεργασία και πολλές διεργασίες εργασίας. Η δουλειά της κύριας διαδικασίας είναι η αξιολόγηση της διαμόρφωσης και η διαχείριση των εργαζομένων. Από την άλλη πλευρά, ο ρόλος μιας διαδικασίας εργασίας είναι να αντιμετωπίζει εισερχόμενα αιτήματα και να δημιουργεί μια σύνδεση μεταξύ του πελάτη και του διακομιστή.
Η τιμή διεργασίας έχει οριστεί σε αυτο από προεπιλογή. Αυτό ορίζει τον αριθμό των διεργασιών εργασίας ίσο με τον αριθμό των διαθέσιμων πυρήνων CPU. Για να μάθετε πόσοι πυρήνες CPU υπάρχουν στο σύστημά σας, εκτελέστε την ακόλουθη εντολή:
επεξεργαστής grep /proc/cpuinfo | wc -l
Εάν θέλετε να αυξήσετε τον αριθμό των διαδικασιών εργασίας, θα πρέπει να το ρυθμίσετε στο αρχείο διαμόρφωσης NGINX.
Ανοίξτε το αρχείο με το nano:
nano etc/nginx/nginx.conf
Για να διαμορφώσετε περισσότερες διεργασίες εργασίας, αλλάξτε την προεπιλεγμένη τιμή στον μέγιστο αριθμό διαθέσιμων πυρήνων CPU στο σύστημά σας.
2. Διαμόρφωση συνδέσεων εργαζομένων
Μια άλλη παράμετρος που μπορείτε να τροποποιήσετε για να βελτιώσετε την απόδοση του NGINX είναι οι συνδέσεις εργαζομένων. Αυτός είναι ο μέγιστος αριθμός συνδέσεων TCP που μπορεί να χειριστεί ταυτόχρονα κάθε διεργασία εργαζόμενου.
Τα περισσότερα συστήματα έχουν προεπιλεγμένη τιμή 512 συνδέσεων, αλλά πολλά σύγχρονα συστήματα υποστηρίζουν επίσης μεγαλύτερο αριθμό. Μπορείτε να ελέγξετε πόσες συνδέσεις υποστηρίζει το σύστημά σας με:
ulimit -n
Η έξοδος θα είναι ο μέγιστος αριθμός συνδέσεων που υποστηρίζονται. Στη συνέχεια, μπορείτε να τροποποιήσετε το εργαζόμενος_συνδέσεις μεταβλητή στο αρχείο διαμόρφωσης NGINX για βελτίωση της απόδοσης.
3. Να επιτρέπεται η συμπίεση GZIP στο NGINX
Το NGINX χρησιμοποιεί το GZIP για συμπίεση και αποσυμπίεση αρχείων. Εάν είναι ενεργοποιημένο στο αρχείο διαμόρφωσης NGINX, μπορείτε να εξοικονομήσετε εύρος ζώνης και να βελτιώσετε τον χρόνο φόρτωσης του ιστότοπου όταν η σύνδεση είναι αργή.
Για να επιτρέψετε τη συμπίεση GZIP, προσθέστε τις ακόλουθες γραμμές στο αρχείο διαμόρφωσης NGINX:
διακομιστής {
gzip ενεργό?
gzip_vary on;
gzip_min_length 10240;
gzip_proxied έληξε όχι-κρύπτηόχι-κατάστημαιδιωτικός auth;
gzip_types text/απλό κείμενο/css text/xml text/javascript application/x-javascript application/xml.
gzip_disable "MSIE [1-6]\.";
}
4. Περιορισμένη τιμή χρονικού ορίου στο NGINX
Οι μειωμένες τιμές χρονικού ορίου παίζουν επίσης σημαντικό ρόλο στη βελτίωση της απόδοσης του NGINX. ο κρατήσει ζωντανή Οι συνδέσεις μειώνουν την επιβάρυνση του επεξεργαστή και του δικτύου κατά το άνοιγμα και το κλείσιμο των συνδέσεων.
Μπορείτε να τροποποιήσετε τις ακόλουθες παραμέτρους στο αρχείο ρυθμίσεων για να περιορίσετε τα χρονικά όρια:
http
{
client_body_timeout 12;
client_header_timeout 12;
keepalive_timeout 15;
send_timeout 10;
}
5. Προσαρμογή μεγέθους buffer
Μπορείτε επίσης να προσαρμόσετε τα buffer NGINX για να βελτιστοποιήσετε την απόδοση του διακομιστή. Εάν το μέγεθος του buffer είναι πολύ χαμηλό, τότε το NGINX θα γράψει σε ένα προσωρινό αρχείο που προκαλεί συνεχή εκτέλεση τεράστιων λειτουργιών I/O.
Πρέπει να ρυθμίσετε τις ακόλουθες παραμέτρους buffer για να λειτουργεί το NGINX με τον καλύτερο δυνατό τρόπο:
http
{
client_body_buffer_size 10K;
client_header_buffer_size 1k;
client_max_body_size 8m;
large_client_header_buffers 4 4k;
}
6. Απενεργοποίηση αρχείων καταγραφής πρόσβασης ή Ενεργοποίηση προσωρινής αποθήκευσης αρχείων καταγραφής πρόσβασης
Τα αρχεία καταγραφής καταναλώνουν μεγάλο χώρο στο δίσκο και κύκλους CPU/IO που μπορούν να επηρεάσουν την απόδοση του διακομιστή εάν καταγράφει κάθε αίτημα.
Μπορείτε να απενεργοποιήσετε τα αρχεία καταγραφής πρόσβασης που θα εξοικονομήσουν χώρο στο δίσκο και την επεξεργασία της CPU. Για να απενεργοποιήσετε τα αρχεία καταγραφής πρόσβασης, προσθέστε την ακόλουθη γραμμή στο αρχείο διαμόρφωσης NGINX:
access_log off;
Τα αρχεία καταγραφής είναι σημαντικά καθώς βοηθούν στην αντιμετώπιση προβλημάτων. Η πλήρης απενεργοποίηση των αρχείων καταγραφής δεν είναι καλή πρακτική. Σε αυτήν την περίπτωση, μπορείτε να ενεργοποιήσετε την προσωρινή αποθήκευση αρχείων καταγραφής πρόσβασης. Αυτό θα επιτρέψει στο NGINX να αποθηκεύσει μια σειρά από αρχεία καταγραφής και να τα γράψει ταυτόχρονα στο αρχείο καταγραφής αντί να εφαρμόζει διαφορετικές λειτουργίες καταγραφής σε κάθε αίτημα.
Προσθέστε την ακόλουθη γραμμή στο αρχείο διαμόρφωσης NGINX για να επιτρέψετε την προσωρινή αποθήκευση αρχείων καταγραφής πρόσβασης:
access_log/var/log/nginx/access.logκύριοςbuffer=16k
7. Προσαρμόστε την περίοδο προσωρινής αποθήκευσης στατικού περιεχομένου στο NGINX
Το περιεχόμενο στον ιστότοπο που παραμένει ίδιο σε όλες τις σελίδες είναι γνωστό ως στατικό περιεχόμενο. Η προσωρινή αποθήκευση αυτού του περιεχομένου επιτρέπει την τοποθέτησή του σε τοποθεσίες που είναι εύκολα προσβάσιμες. Αυτός ο μηχανισμός μειώνει τη χρήση εύρους ζώνης, επιτρέπει γρήγορη προσβασιμότητα και στη συνέχεια βελτιώνει την απόδοση του ιστότοπου.
Όταν ένας πελάτης ζητά στατικό περιεχόμενο, ο διακομιστής θα εξυπηρετήσει μια προσωρινά αποθηκευμένη έκδοση του περιεχομένου. Προσθέστε τις ακόλουθες γραμμές στο αρχείο εικονικού κεντρικού υπολογιστή που τοποθετείται στο /etc/nginx/sites-available Ευρετήριο:
τοποθεσία ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
λήγει 90d?
}
Αυτή η διαμόρφωση θα αποθηκεύσει προσωρινά τα αρχεία για 90 ημέρες από τον τελευταίο χρόνο πρόσβασης του προγράμματος περιήγησης.
8. Ενεργοποίηση Open File Cache στο NGINX
Μπορείτε επίσης να χρησιμοποιήσετε παραμέτρους προσωρινής μνήμης ανοιχτού αρχείου στο αρχείο διαμόρφωσης NGINX για να βελτιώσετε την απόδοσή του. Αυτή η οδηγία επιτρέπει την προσωρινή αποθήκευση του περιγραφέα αρχείων και των αρχείων που επισκέπτεστε συχνά στον διακομιστή.
Προσθέστε τις ακόλουθες γραμμές στο http ενότητα στο αρχείο διαμόρφωσης για να ενεργοποιήσετε την ανοιχτή προσωρινή μνήμη αρχείων:
http {
open_file_cache max=1024 inactive=10s;
open_file_cache_valid 60s;
open_file_cache_min_uses 2;
open_file_cache_errors on;
}
Αποκτήστε το καλύτερο από το NGINX Τροποποιώντας τα Αρχεία Διαμόρφωσής του
Μια καλή πρακτική που πρέπει να ακολουθήσετε κατά την αλλαγή των διαμορφώσεων είναι να αντιμετωπίζετε μία ρύθμιση τη φορά και να τη δοκιμάζετε. Εάν λειτουργεί, μεταβείτε στην επόμενη ρύθμιση. Εάν όχι, μπορείτε πάντα να αλλάξετε τη διαμόρφωση στην προεπιλεγμένη τιμή.
Τροποποιώντας τις παραμέτρους που έχουν ρυθμιστεί στα αρχεία διαμόρφωσης NGINX όπως π.χ nginx.conf και εικονικά αρχεία κεντρικού υπολογιστή, μπορείτε να χακάρετε το NGINX για να έχετε την καλύτερη απόδοση.