WordPress πως μπορεί να τρέξει γρηγορότερα;


Το ερώτημα στην σελίδα μας στο Facebook ήταν: “Τι κάνει γρήγορο το iGuRu.gr?” Υπήρξαν διάφορες απαντήσεις: το cloud, το CDN, η τοποθεσία του server. Ναι ίσως είναι όλα αυτά, αλλά μνα τους δεν φτάνουν.

Το iGuRu.gr χρησιμοποιεί cloud hosting σε ένα αρκετά ισχυρό VPS (AMD EPYC 7702, 64GB DDR4 RAM (ECC) με 10 dedicated cores) αλλά θα μπορούσαμε να έχουμε και κάτι μικρότερο. Αυτό που παίζει όμως σημαντικό ρόλο στην απόδοση του site είναι το setup.

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

Επιπλέον, ο Apache φορτώνει ένα άλλο αντίγραφο της μονάδας mod_php στη μνήμη για κάθε σύνδεση, ακόμα και αν εξυπηρετεί μόνο στατικά αρχεία (εικόνες, CSS, JavaScript κλπ.). Αυτό καταναλώνει ακόμη περισσότερους πόρους για κάθε σύνδεση και περιορίζει περαιτέρω τη απόδοση του διακομιστή.

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

Το NGINX (προφέρεται engine X) διαχειρίζεται καλύτερα τα στατικά αρχεία, με ενσωματωμένα, και εύκολα ρυθμιζόμενα στοιχεία ελέγχου προσωρινής αποθήκευσης. Το φορτίο στον web server μειώνεται και ο ιστότοπος μπορεί να εξυπηρετήσει πολύ περισσότερη κίνηση πολύ ταχύτερα.

Μπορείτε (αν θέλετε την ασφάλεια του Apache) να τοποθετήσετε έναν NGINX server “μπροστά” από τον Apache ως αντίστροφο διακομιστή. Ο NGINX server θα λαμβάνει τα αιτήματα, θα εξυπηρετεί τα στατικά αρχεία και θα στέλνει τα αιτήματα PHP στον Apache, να τα επεξεργάζεται.

Για σελίδες που δημιουργούνται δυναμικά όπως αυτές που χρησιμοποιούν WordPress οι ρυθμίσεις του NGINX είναι εύκολες.

Προσθήκη υποστήριξης permalink στο NGINX. Αυτό εξαλείφει την εξάρτηση από το αρχείο .htaccess, το οποίο είναι ειδικό για το Apache.
Προσθήκη υποστήριξης για προσωρινή αποθήκευση με κάποιο εργαλείο προσωρινής αποθήκευσης όπως το FastCGI και φυσικά εφαρμογή όλων των προφυλάξεων ασφαλείας για την ασφάλεια του WordPress στο NGINX.

Η προσθήκη προσωρινής αποθήκευσης στο WordPress και ο συνδυασμός του WordPress με το NGINX, κάνουν θαύματα. Όμως δεν φτάνουν….

Εκτός από τα παραπάνω χρησιμοποιούμε Cloudflare για DNS και caching. Το caching από αυτή την υπηρεσία είναι τόσο ισχυρό που αν δεν καθαριστεί αυτόματα μετά από κάθε νέο post δεν θα βλέπετε την δημοσίευση στην σελίδα.

Μετά μπορούμε να μιλήσουμε και για το CDN, την αποθήκευση δηλαδή και το σερβίρισμα όλων των στατικών αρχείων (εικόνες, css, js) από ένα άλλο αποθηκευτικό server και όχι από τον web server που τρέχει την SQL και την PHP.


Διαβάστε τις Τεχνολογικές Ειδήσεις από όλο τον κόσμο, με την εγκυρότητα του iGuRu.gr

Ακολουθήσετε μας στο Google News iGuRu.gr at Google news