Φιλοξενία & Πρόσθετα WordPress
Κάνοντας το WordPress γρήγορο και ασφαλές: Μια λίστα ελέγχου απόδοσης και πρόσθετων
Το WordPress είναι πάντα τόσο γρήγορο και ασφαλές όσο το περιβάλλον στο οποίο εκτελείται. Ακολουθεί ο πρακτικός κατάλογος ελέγχου που εφαρμόζουμε σε κάθε ιστότοπο WordPress που φιλοξενούμε — τι πρέπει να αποθηκεύεται στην προσωρινή μνήμη, τι πρέπει να ασφαλίζεται και ποια πρόσθετα αξίζουν τη θέση τους σε σύγκριση με εκείνα που η πλατφόρμα καθιστά περιττά.
Το WordPress είναι τόσο καλό όσο αυτό στο οποίο εκτελείται
Το WordPress τροφοδοτεί ένα μεγάλο μέρος του ιστού επειδή είναι ευέλικτο, αλλά αυτή η ευελιξία είναι επίσης ο τρόπος με τον οποίο γίνεται αργό και επισφαλές: μια προεπιλεγμένη εγκατάσταση υποβάλλει δεκάδες ερωτήματα στη βάση δεδομένων ανά σελίδα, κοινοποιεί την έκδοση και το stack του σε οποιονδήποτε κοιτάξει και σας καλεί να συσσωρεύετε πρόσθετα μέχρι η απόδοση και η επιφάνεια επίθεσης να διογκωθούν αθόρυβα. Τίποτα από αυτά δεν είναι τόσο ελάττωμα του WordPress όσο συνέπεια της εκτέλεσής του σε υποδομή που δεν κάνει τίποτα για να βοηθήσει.
Τα καλά νέα είναι ότι οι ίδιες λίγες αποφάσεις διορθώνουν το μεγαλύτερο μέρος του προβλήματος, και πρόκειται για αποφάσεις που αφορούν την τεχνολογική υποδομή (stack) και όχι το περιεχόμενο. Εφαρμόστε επιθετική προσωρινή αποθήκευση (cache) στο σωστό επίπεδο, κρατήστε τη βάση δεδομένων εκτός της κρίσιμης διαδρομής (hot path), εκτελέστε μόνο τα λίγα πρόσθετα που πραγματικά αξίζουν τη θέση τους, διατηρήστε τα πάντα ενημερωμένα και απομονώστε τον ιστότοπο ώστε κάθε πρόβλημα να παραμένει περιορισμένο. Αυτή η ανάρτηση αποτελεί αυτήν ακριβώς τη λίστα ελέγχου, με τη σειρά που την εφαρμόζουμε σε κάθε ιστότοπο WordPress στην πλατφόρμα.
Αποθήκευση στην προσωρινή μνήμη στον διακομιστή, όχι μόνο σε μια προσθήκη
Ο σημαντικότερος μοχλός για την ταχύτητα του WordPress είναι να μην εκτελείται καθόλου το WordPress για τις περισσότερες επισκέψεις. Ένα τυπικό αίτημα εκκινεί το WordPress, εκτελεί τα πρόσθετά σας και υποβάλλει ερωτήματα στη βάση δεδομένων πριν στείλει έστω και ένα byte· μια προσωρινή μνήμη πλήρους σελίδας (full-page cache) σερβίρει την έτοιμη σελίδα απευθείας από τον διακομιστή ιστού στην επόμενη επίσκεψη, παρακάμπτοντας ολόκληρη αυτή την εκκίνηση. Το πού βρίσκεται αυτή η προσωρινή μνήμη έχει σημασία: ένα πρόσθετο προσωρινής αποθήκευσης βρίσκεται μέσα στην PHP, επομένως η PHP εξακολουθεί να ξεκινά πριν μπορέσει να απαντήσει η προσωρινή μνήμη, ενώ μια προσωρινή μνήμη σε επίπεδο διακομιστή απαντά νωρίτερα στο αίτημα και διατηρεί τις σελίδες σε μορφή που ο διακομιστής μπορεί να εκκαθαρίσει άμεσα.
Κάθε ιστότοπος WordPress που φιλοξενούμε εκτελείται σε LiteSpeed Enterprise με LSCache σε επίπεδο διακομιστή, και το δικό μας πρόσθετο προσωρινής αποθήκευσης συνδέει το WordPress σωστά από την πρώτη στιγμή — προεγκατεστημένο και αυτόματα ενημερωμένο, ώστε να είναι ένα λιγότερο πράγμα προς ρύθμιση ή ενημέρωση. Σε προέλευση εκτός LiteSpeed, το ίδιο πρόσθετο απλώς δεν εκπέμπει κεφαλίδες πλήρους σελίδας και παραμένει διακριτικό ενώ η προσωρινή μνήμη αντικειμένων συνεχίζει να λειτουργεί, επομένως ένας ιστότοπος που έχει μεταφερθεί δεν μένει ποτέ μισορυθμισμένος. Ο πρακτικός κανόνας για τη δική σας λίστα ελέγχου: μία προσωρινή μνήμη πλήρους σελίδας, στον διακομιστή, και μην τοποθετείτε δεύτερο πρόσθετο προσωρινής μνήμης από πάνω — συγκρούονται.
Η προσωρινή μνήμη αντικειμένων και η βάση δεδομένων
Δεν μπορεί κάθε αίτημα να είναι μια στατική σελίδα. Οι συνδεδεμένες συνεδρίες, η διαχείριση, η αναζήτηση, τα καλάθια αγορών και οποιοδήποτε εξατομικευμένο τμήμα πρέπει να εκτελούν PHP, και για αυτά ο στόχος μετατοπίζεται από την παράκαμψη της εφαρμογής στην παράκαμψη της βάσης δεδομένων. Μια προσωρινή μνήμη αντικειμένων ανά ιστότοπο — το Redis, στη δική μας περίπτωση — διατηρεί τα αποτελέσματα των επαναλαμβανόμενων αναγνώσεων της βάσης δεδομένων στη μνήμη, ώστε οι ίδιες επιλογές, τα προσωρινά δεδομένα και οι αναζητήσεις να μην ερωτώνται στη βάση δεδομένων σε κάθε επίσκεψη. Το αποτέλεσμα εμφανίζεται ακριβώς εκεί όπου η προσωρινή μνήμη πλήρους σελίδας δεν μπορεί να βοηθήσει: ταχύτερη διαχείριση, ταχύτερα καλάθια αγορών και πολύ χαμηλότερος φόρτος βάσης δεδομένων υπό συνθήκες κίνησης.
Η λέξη που έχει σημασία είναι «ανά ιστότοπο» (per-site). Μια κοινόχρηστη μνήμη cache αντικειμένων (shared object cache) σημαίνει ότι ένας ιστότοπος με μεγάλη κίνηση ή κακογραμμένο κώδικα μπορεί να εκτοπίσει τα προσωρινά αποθηκευμένα δεδομένα όλων των άλλων και να στερήσει τη βάση δεδομένων από τους γείτονές του· μια αποκλειστική μνήμη cache ανά ιστότοπο, σε συνδυασμό με όρια βάσης δεδομένων ανά ιστότοπο, διατηρεί περιορισμένη την ακτίνα πρόκλησης προβλημάτων. Στη λίστα ελέγχου σας, να θεωρείτε τη μόνιμη μνήμη cache αντικειμένων ως υποχρεωτική για οποιονδήποτε ιστότοπο με συνδεδεμένους χρήστες ή κατάστημα, και να είστε επιφυλακτικοί με τη φιλοξενία όπου αυτή είναι κοινόχρηστη μεταξύ των μισθωτών.
Τα πρόσθετα που αξίζει να εκτελείτε — και αυτά που αντικαθιστά η πλατφόρμα
Κάθε πρόσθετο που προσθέτετε είναι κώδικας που εκτελείται σε αιτήματα και μια πόρτα από την οποία κάποιος θα μπορούσε μια μέρα να περάσει, επομένως ο ειλικρινής στόχος είναι τα λιγότερα πρόσθετα που κάνουν τα περισσότερα. Ένας καλός πάροχος φιλοξενίας καταργεί την ανάγκη για μια ολόκληρη κατηγορία από αυτά: με προσωρινή αποθήκευση σε επίπεδο διακομιστή, διαχειριζόμενη προσωρινή μνήμη αντικειμένων και αντίγραφα ασφαλείας πλατφόρμας, δεν χρειάζεστε πρόσθετο προσωρινής αποθήκευσης, ξεχωριστό πρόσθετο μνήμης αντικειμένων ή πρόσθετο αντιγράφων ασφαλείας — αυτές οι εργασίες εκτελούνται καλύτερα κάτω από το WordPress, και η εκτέλεσή τους από πάνω προσθέτει μόνο διενέξεις και επιβάρυνση.
Αυτό που αξίζει να εκτελείται είναι το μικρό σύνολο που προσθέτει πραγματικές δυνατότητες: τα πρόσθετα που χρειάζεται πραγματικά ο ιστότοπός σας για τη λειτουργία του, και — στην πλατφόρμα μας — τα δύο πρόσθετα επιπέδου επίσημου αποθετηρίου που αναπτύσσουμε και παρέχουμε με κάθε ιστότοπο. Το πρόσθετο προσωρινής μνήμης μας συνδέει το WordPress με την προσωρινή μνήμη του διακομιστή και διαχειρίζεται την έξυπνη εκκαθάριση, ώστε μια επεξεργασία να διαγράφει μόνο τις σελίδες που πρέπει. Το πρόσθετο ψηφιακού αποτυπώματος (footprint) αφαιρεί τα αναγνωριστικά σημάδια που μεταδίδει μια προεπιλεγμένη εγκατάσταση WordPress — την ετικέτα έκδοσης και δημιουργού, τα τελικά σημεία εντοπισμού, το XML-RPC, τα pingbacks και την κεφαλίδα powered-by — σε κάθε ανάπτυξη, ώστε μια ενημέρωση πρόσθετου ή θέματος να μην μπορεί να τα επαναφέρει σιωπηλά. Και τα δύο είναι κατασκευασμένα σύμφωνα με τα πρότυπα του καταλόγου πρόσθετων του WordPress.org, είναι δωρεάν και ενημερώνονται αυτόματα.
Διατήρηση του WordPress ασφαλούς και ενημερωμένου
Οι περισσότερες παραβιάσεις του WordPress δεν είναι έξυπνες· είναι παλιές. Ένας μη ενημερωμένος πυρήνας, ένα θέμα ή ένα πρόσθετο με γνωστή, δημοσιευμένη ευπάθεια είναι ο συντριπτικά συνηθέστερος τρόπος με τον οποίο πλήττονται οι ιστότοποι, γεγονός που καθιστά τη διατήρηση της ενημέρωσης την πιο πολύτιμη εργασία ασφαλείας — και την πιο κουραστική, γι' αυτό και παραλείπεται. Η διαχειριζόμενη φιλοξενία οφείλει να αναλάβει αυτό το βάρος για εσάς: επιδιορθώνοντας το τεχνολογικό υπόβαθρο κάτω από το WordPress και καθιστώντας ασφαλή την εφαρμογή των ενημερώσεων πυρήνα και πρόσθετων, παρέχοντάς σας ένα δοκιμαστικό αντίγραφο για έλεγχο και ένα αντίγραφο ασφαλείας για επαναφορά.
Εκτός από την ενημερότητα, να απαιτείτε την επιβολή των ορίων για εσάς: σάρωση για κακόβουλο λογισμικό ενεργοποιημένη από προεπιλογή, ώστε μια μόλυνση να εντοπίζεται εγκαίρως αντί να ανακαλύπτεται από έναν επισκέπτη, απομόνωση ώστε ένας παραβιασμένος ιστότοπος να μην μπορεί να επηρεάσει έναν άλλο, προστασία DDoS στα άκρα του δικτύου και TLS παντού με αυτόματη ανανέωση πιστοποιητικών. Τίποτα από αυτά δεν υποκαθιστά τη βασική υγιεινή — ισχυρά διαπιστευτήρια, πρόσβαση ελάχιστων προνομίων, κατάργηση προσθέτων που δεν χρησιμοποιείτε πλέον — αλλά σημαίνει ότι η υποδομή δεν αποτελεί τον αδύναμο κρίκο. Στη λίστα ελέγχου σας, το ερώτημα για κάθε πάροχο φιλοξενίας είναι απλό: είναι η ασφάλεια η προεπιλογή ή ένα πακέτο που πρέπει να αγοράσετε;
Το WooCommerce και οι σελίδες που δεν πρέπει ποτέ να αποθηκεύετε στην προσωρινή μνήμη
Ένα κατάστημα είναι το μέρος όπου η επιθετική προσωρινή αποθήκευση (caching) αποφέρει τα μεγαλύτερα οφέλη και προκαλεί τη μεγαλύτερη ζημιά εάν είναι απλοϊκή. Οι σελίδες καταλόγου, προϊόντων και κατηγοριών είναι οι σελίδες με τη μεγαλύτερη επισκεψιμότητα και την υψηλότερη δυνατότητα προσωρινής αποθήκευσης που διαθέτετε, και η προβολή τους από προσωρινή μνήμη πλήρους σελίδας (full-page cache) είναι το καλύτερο πράγμα που μπορείτε να κάνετε για την ταχύτητα ενός καταστήματος. Αλλά οι σελίδες καλαθιού, ταμείου και λογαριασμού είναι προσωπικές και δεν πρέπει ποτέ να εξυπηρετούνται από κοινόχρηστη προσωρινή μνήμη — αν το κάνετε αυτό, ο πελάτης θα δει το καλάθι κάποιου άλλου, γεγονός που συνιστά τόσο δυσλειτουργία του καταστήματος όσο και παραβίαση απορρήτου.
Ο τρόπος για να έχετε και τα δύο είναι να αποθηκεύσετε τη σελίδα στην προσωρινή μνήμη και να δημιουργήσετε οπές για τα δυναμικά τμήματα. Τα Edge Side Includes αποδίδουν το τμήμα του καλαθιού, τα σύνολα του μίνι καλαθιού και την κατάσταση του λογαριασμού ανά αίτημα ενώ η υπόλοιπη σελίδα εξυπηρετείται από την προσωρινή μνήμη, και οι σελίδες cart, checkout, my-account καθώς και τυχόν σελίδες nonce ή session εξαιρούνται από προεπιλογή. Η ανανέωση διαχειρίζεται από έξυπνη αυτόματη εκκαθάριση που ενεργοποιείται όταν αλλάζει ένα προϊόν, μια τιμή ή μια παραγγελία, ώστε να μην παραμένει ποτέ μια παρωχημένη τιμή. Εάν χρησιμοποιείτε το WooCommerce, αυτό είναι το μέρος της λίστας ελέγχου που πρέπει να ρυθμιστεί με απόλυτη ακρίβεια: γρήγορη βιτρίνα από την προσωρινή μνήμη, ζωντανό καλάθι ανά χρήστη, κανένα προσωπικό δεδομένο στην προσωρινή μνήμη.
Συχνές ερωτήσεις
Χρειάζομαι ακόμα ένα πρόσθετο προσωρινής αποθήκευσης όπως το WP Rocket;
Όχι. Η προσωρινή αποθήκευση ολόκληρης σελίδας διαχειρίζεται στον διακομιστή ιστού από το LSCache του LiteSpeed, το δικό μας πρόσθετο προσωρινής αποθήκευσης συνδέει το WordPress με αυτό και διαχειρίζεται την έξυπνη εκκαθάριση, ενώ μια προσωρινή μνήμη αντικειμένων Redis ανά ιστότοπο βρίσκεται πίσω από αυτό. Η προσθήκη ενός δεύτερου πρόσθετου προσωρινής αποθήκευσης ολόκληρης σελίδας συνήθως συγκρούεται με την προσωρινή μνήμη σε επίπεδο διακομιστή αντί να βοηθά, επομένως δεν είναι ούτε απαραίτητη ούτε συνιστάται.
Ποια πρόσθετα καθιστά περιττά η πλατφόρμα;
Τα πρόσθετα προσωρινής αποθήκευσης (caching), τα ξεχωριστά πρόσθετα object-cache και τα πρόσθετα αντιγράφων ασφαλείας είναι περιττά εδώ, επειδή αυτές οι εργασίες εκτελούνται κάτω από το WordPress — προσωρινή αποθήκευση σε επίπεδο διακομιστή, διαχειριζόμενο object cache ανά ιστότοπο και αντίγραφα ασφαλείας πλατφόρμας. Η κατάργησή τους μειώνει τις διενέξεις και την επιφάνεια επίθεσης. Αυτό που αξίζει να παραμείνει ενεργό είναι τα πρόσθετα που χρειάζεται πραγματικά ο ιστότοπός σας για τη λειτουργία του, καθώς και τα δύο δωρεάν πρόσθετά μας για cache και footprint, τα οποία παραδίδονται προεγκατεστημένα.
Θα επηρεάσει αρνητικά η προσωρινή αποθήκευση το καλάθι μου στο WooCommerce ή τις σελίδες συνδεδεμένων χρηστών;
Όχι. Οι σελίδες Cart, checkout, my-account και τυχόν σελίδες nonce ή συνεδρίας εξαιρούνται από την προσωρινή μνήμη από προεπιλογή, και το Edge Side Includes διατηρεί το απόσπασμα του καλαθιού και τα σύνολα ζωντανά σε σελίδες που κατά τα άλλα προσωρινά αποθηκεύονται. Οι αγοραστές βλέπουν πάντα το δικό τους καλάθι και ένα λειτουργικό ταμείο ενώ η βιτρίνα εξακολουθεί να φορτώνεται από την προσωρινή μνήμη, και η έξυπνη αυτόματη εκκαθάριση εκκαθαρίζει τις επηρεαζόμενες σελίδες όταν αλλάζει ένα προϊόν, μια τιμή ή μια παραγγελία.
Πώς διατηρείτε το WordPress ασφαλές χωρίς να το διαχειρίζομαι εγώ;
Ενημερώνουμε με διορθώσεις το περιβάλλον κάτω από το WordPress, καθιστούμε ασφαλή την εφαρμογή των ενημερώσεων του πυρήνα και των προσθέτων μέσω δοκιμαστικού περιβάλλοντος και επαναφοράς με ένα κλικ, διατηρούμε εξ ορισμού ενεργή τη σάρωση για κακόβουλο λογισμικό και την προστασία από επιθέσεις DDoS, απομονώνουμε κάθε ιστότοπο ώστε να μην μπορεί να εξαπλωθεί μια πιθανή παραβίαση, και εκδίδουμε καθώς και ανανεώνουμε αυτόματα τα πιστοποιητικά TLS. Αυτό εξαλείφει την υποδομή ως τον αδύναμο κρίκο· η βασική ψηφιακή υγιεινή, όπως τα ισχυρά διαπιστευτήρια και η κατάργηση των αχρησιμοποίητων προσθέτων, εξακολουθεί να αποτελεί δική σας ευθύνη.
Σχετικά
Δοκιμάστε το δωρεάν για 14 ημέρες
Εκκινήστε τους πρώτους σας ιστότοπους δωρεάν για 14 ημέρες — χωρίς κάρτα. Μεταφέρετε έναν υπάρχοντα ιστότοπο ή δίκτυο; Οι μεταφορές είναι δωρεάν, χωρίς όριο.
Ξεκινήστε δωρεάν