Επτά συστήματα, μηχανισμό με μηχανισμό.
Όλα τα παρακάτω υπάρχουν σήμερα στην επέκταση. Τίποτα εδώ δεν είναι σχέδιο για αργότερα και κανένας αριθμός δεν μπαίνει αν δεν στέκει — μόνο τι κάνει το κάθε κομμάτι και πώς.
7 συστήματα 49 μηχανισμοί Όλα με μία άδεια
Page Cache
Σερβίρεται πριν ξεκινήσει το OpenCart.
Σε cache hit απαντά το catalog/index.php, πριν από το framework. Τα παρακάτω ορίζουν τι σερβίρει το Nitro, για πόσο και τι κάνει όσο ξαναχτίζει μια σελίδα.
- Απάντηση πριν από το framework
- Το Nitro σερβίρει τις σελίδες της cache από το catalog/index.php, πριν ξεκινήσει το OpenCart — μηδέν ερωτήματα βάσης δεδομένων σε cache hit.
- Έτοιμα .gz αντίγραφα
- Κάθε σελίδα στη cache κρατά στον δίσκο και ένα .gz αντίγραφο, ώστε το gzip να γίνει μία φορά και όχι σε κάθε αίτημα.
- ETag και Last-Modified
- Οι σελίδες της cache φεύγουν με ETag και Last-Modified. Αν δεν άλλαξε τίποτα, το επόμενο αίτημα παίρνει 304 αντί για ολόκληρη τη σελίδα.
- TTL ανά route
- Ένα route μπορεί να παρακάμψει τον προεπιλεγμένο χρόνο ζωής. Κάθε TTL παίρνει και τυχαία απόκλιση στη λήξη, ώστε να μη λήγουν όλες οι σελίδες την ίδια στιγμή.
- Soft-bust epoch
- Ένα soft-bust epoch μαρκάρει όλη τη cache ως stale με μια κίνηση, χωρίς να σβήσει ούτε ένα αρχείο από τον δίσκο.
- stale-while-revalidate
- Το Nitro συνεχίζει να σερβίρει τη ληγμένη σελίδα όσο χτίζει το νέο αντίγραφο στο παρασκήνιο — ο επισκέπτης δεν περιμένει ποτέ.
- stale-if-error
- Αν αποτύχει το χτίσιμο στο παρασκήνιο, ο επισκέπτης παίρνει το τελευταίο καλό αντίγραφο της cache, όχι σφάλμα.
- Cache για συνδεδεμένους πελάτες
- Προαιρετικό. Οι συνδεδεμένοι επισκέπτες διαβάζουν την ίδια κοινή cache με τους απλούς επισκέπτες. Το καλάθι και τα στοιχεία του λογαριασμού τους τα γεμίζουν τα Dynamic Fragments στον server, πριν φύγει η απάντηση — και η σελίδα ενός συνδεδεμένου δεν μπαίνει ποτέ στη cache. Καλύτερα όχι σε eshop με τιμές ανά ομάδα πελατών — το admin σας προειδοποιεί.
- Dynamic Fragments
- Τις περιοχές που αλλάζουν ανά επισκέπτη — πρώτα απ’ όλα το καλάθι — τις γεμίζει ο server με το δικό του markup, πριν φύγει το πρώτο byte: χωρίς JavaScript, χωρίς mask, χωρίς αντικατάσταση αφού εμφανιστεί η σελίδα. Το κάνουν τρία βήματα, όλα fail-open: το stash κρατά τον render ενός fragment route, όπως τον είδε ο επισκέπτης μετά την τελευταία κίνηση στο καλάθι· το mark βρίσκει μέσα στην κοινή σελίδα το στοιχείο που δείχνει ο id selector του fragment και το κλείνει σε markers· το apply βάζει στη θέση του το αντίγραφο του επισκέπτη, την ώρα που φεύγει η σελίδα. Πιάνει μόνο id selectors, όχι classes, και όποιο βήμα δεν βρει αυτό που ψάχνει αφήνει στη θέση του το markup της κοινής σελίδας.
- Entity purge και re-warm
- Όταν αλλάζετε προϊόν, κατηγορία, σελίδα πληροφοριών ή κατασκευαστή, καθαρίζουν μόνο οι σελίδες που πιάνει η αλλαγή και μπαίνουν στην ουρά για το επόμενο πέρασμα της προθέρμανσης.
- Ο cron watcher
- Πιάνει τις αλλαγές που έγιναν εντελώς έξω από το OpenCart — ένα ERP ή ένα script που γράφει απευθείας στη βάση — κοιτώντας το date_modified κάθε εγγραφής.
- Canonical Domain Redirect
- Προαιρετικό. Στέλνει με 301 τη μη ρυθμισμένη εκδοχή του domain, www ή apex, σε αυτήν που έχετε ρυθμίσει — ένα cache tree, κανένα διπλό URL για τις μηχανές αναζήτησης. Ο χάρτης των hosts βγαίνει από τον πίνακα store, δεν γράφεται ποτέ στο χέρι.
Query & Data Cache
Μια αλλαγή ακυρώνει έναν πίνακα, όχι όλη τη cache.
Στη cache μπαίνει και η δουλειά της βάσης πίσω από τη σελίδα. Το invalidation πιάνει έναν πίνακα τη φορά, οπότε μια αλλαγή δεν αδειάζει όλη τη cache.
- Query cache
- Τα SELECT του eshop μπαίνουν στη cache με invalidation marker ανά πίνακα, οπότε μια αλλαγή σε έναν πίνακα ακυρώνει μόνο τα δικά του αποτελέσματα.
- Journal3 result cache
- Το result cache του Journal3 μπαίνει μαζί με το υπόλοιπο query cache.
- Fast File Cache
- Προαιρετικό. Αντικαθιστά τα εσωτερικά του κανονικού driver Cache\File του OpenCart: ανάγνωση με ακριβές όνομα και σάρωση του φακέλου κάθε 30 λεπτά, αντί για glob σε όλον τον φάκελο σε κάθε αίτημα.
- Log για τα αργά ερωτήματα βάσης δεδομένων
- Κάθε αργό query μπαίνει στο log μαζί με μια σύνοψη EXPLAIN.
- Log για τα πολύ μεγάλα αποτελέσματα
- Τα ερωτήματα βάσης δεδομένων που γυρίζουν υπερβολικά μεγάλο αποτέλεσμα πάνε σε ξεχωριστό log.
Στατικά αρχεία
Λιγότερα bytes, χωρίς διπλή δουλειά.
Το Nitro επεξεργάζεται CSS και JS μία φορά και μετά τα ξαναχρησιμοποιεί. Ξοδεύει αυτή τη δουλειά μόνο όπου κρατά το αποτέλεσμα.
- Minification
- Minification σε HTML, CSS — inline και σε αρχεία — και JS.
- Bundling
- Τα αρχεία CSS και JS ενώνονται, ώστε η σελίδα να ζητά λιγότερα αιτήματα.
- Async και critical CSS
- Το critical CSS μπαίνει inline, ώστε το πρώτο ορατό κομμάτι της σελίδας να εμφανίζεται αμέσως. Το υπόλοιπο stylesheet φορτώνει ασύγχρονα.
- Deferred JS
- Τα scripts φορτώνουν με defer, για να μην μπλοκάρουν την εμφάνιση της σελίδας.
- Scripts τρίτων με καθυστέρηση
- Τα scripts τρίτων φορτώνουν αργότερα, μετά την ίδια τη σελίδα.
- Resource hints
- Στη σελίδα μπαίνουν hints, ώστε ο browser να ξεκινήσει τη δουλειά για ό,τι θα χρειαστεί πριν το ζητήσει ρητά.
- Speculation Rules
- Οι πιθανές επόμενες σελίδες περνούν από prefetch και prerender μέσω του Speculation Rules API. Για τους browsers που δεν το υποστηρίζουν ακόμα, υπάρχει fallback με βάση την πρόθεση του επισκέπτη.
- Χωρίς minification εκτός cache
- Το minification τρέχει μόνο σε απαντήσεις που το Nitro αποθηκεύει και ξανασερβίρει — μια δυναμική σελίδα εκτός cache δεν πληρώνει ποτέ κόστος που δεν θα το πάρει πίσω.
Εικόνες
Κάθε εικόνα ζυγίζει όσο πρέπει, όχι παραπάνω.
Οι εικόνες περνούν από τον resizer του ίδιου του OpenCart, όχι από παράλληλο pipeline, οπότε συμβαδίζουν με ό,τι άλλο γίνεται στη σελίδα.
- Lazy loading
- Οι εικόνες φορτώνουν μόνο καθώς πλησιάζουν στο viewport.
- Ρητές διαστάσεις
- Κάθε εικόνα έχει ρητό width και height, οπότε ο browser κρατά τη θέση της και η σελίδα δεν αναπηδά όσο φορτώνουν.
- LCP preload
- Η μεγαλύτερη εικόνα της σελίδας φορτώνει πρώτη, ώστε να μην καθυστερεί το Largest Contentful Paint.
- WebP generation
- Οι εκδόσεις WebP βγαίνουν μέσα από hooks στον image resizer του ίδιου του OpenCart, όχι από ξεχωριστό pipeline.
- Fast-resize prepass
- Οι ασυνήθιστα μεγάλες αρχικές εικόνες περνούν πρώτα από ένα γρήγορο resize, πριν τρέξει το κανονικό resize του OpenCart.
Προστασία
Το Nitro κόβει την ανεπιθύμητη κίνηση πριν κοστίσει οτιδήποτε.
Ο ίδιος δρόμος που δίνει την έτοιμη σελίδα, πριν ξεκινήσει το framework, σταματάει και όσα αιτήματα δεν έχουν καμία δουλειά να φτάσουν στο OpenCart.
- Firewall αιτημάτων
- Το Nitro ελέγχει μοτίβα URL και user agents πριν φορτώσει το framework. Ένα μπλοκαρισμένο αίτημα παίρνει 403 από το ίδιο σημείο που φεύγει και μια σελίδα σε cache hit.
- Bot throttling
- Τα cache miss από τους scrapers της λίστας παίρνουν 503, αντί να τρέξει ολόκληρο το αίτημα.
- Reverse-DNS verification
- Το Nitro ελέγχει με reverse DNS όποιον δηλώνει ότι είναι γνωστό crawler — ένα ψεύτικο Googlebot πέφτει σε throttling αντί να περάσει.
- Άμεσο 404
- Προαιρετικό. Τα αιτήματα για στατικά αρχεία που δεν υπάρχουν παίρνουν αμέσως 404, πριν από το framework.
- Cookie-less session guard
- Προαιρετικό. Δεν αφήνει τα bots που δεν κρατούν cookies να φουσκώνουν τα sessions.
- Κλείδωμα στο admin login
- Λάθος κωδικός πολλές φορές, και ο λογαριασμός κλειδώνει.
Προθέρμανση
Η cache γεμίζει μόνη της, πριν τη γεμίσει επισκέπτης.
Ένας crawler από cron κρατά τη cache γεμάτη, μπαίνοντας ως απλός επισκέπτης — έτσι ο πραγματικός επισκέπτης σπάνια βρίσκει κρύα σελίδα.
- CLI cron crawler
- Τρέχει από cron ως απλός επισκέπτης και διατρέχει το eshop για να ξαναχτίσει τη cache του.
- Βλέπει τον φόρτο, συνεχίζει από τη μέση
- Το πέρασμα της προθέρμανσης κάνει πίσω όταν ο server έχει φόρτο και συνεχίζει από εκεί που σταμάτησε, αντί να ξεκινήσει από την αρχή.
- Από την πραγματική κίνηση και τους συνδέσμους
- Οι σελίδες που θα διατρέξει βγαίνουν από την πραγματική κίνηση και από τους συνδέσμους των σελίδων που έχει ήδη περάσει η προθέρμανση.
- Κάθε παραλλαγή συσκευής
- Όταν η cache ανά συσκευή είναι ενεργή, η προθέρμανση χτίζει αντίγραφο για κάθε παραλλαγή συσκευής, όχι μόνο για μία.
Πίνακας ελέγχου
Ό,τι κάνει η μηχανή, σε ένα σημείο.
Στον πίνακα ελέγχου του admin παρακολουθείτε, ρυθμίζετε και καθαρίζετε τη cache, την προθέρμανση και το firewall.
- Health score
- Ένα health score με προτάσεις που μπορείτε να εφαρμόσετε, από ελέγχους στο ίδιο το σύστημα: ποσοστό bypass, domains χωρίς ρύθμιση, πόσο πρόσφατα έτρεξε το cron της προθέρμανσης.
- Ιστορικό hit ratio
- Πώς κινήθηκε το hit ratio της cache στον χρόνο.
- Παρακολούθηση της κίνησης
- Η κίνηση που δέχεται το eshop, σε πραγματικό χρόνο.
- Αργά ερωτήματα βάσης δεδομένων
- Το log των αργών ερωτημάτων βάσης δεδομένων, μέσα στον ίδιο τον πίνακα ελέγχου.
- Καθαρισμός ανά URL
- Καθαρίζετε μεμονωμένα URL από τη cache όποτε θέλετε.
- Εργαλεία για indexes και πίνακες
- Διαχειρίζεστε indexes και πίνακες της βάσης.
- Ορφανές και παλιές εγγραφές
- Βρίσκετε και καθαρίζετε ορφανές και παλιές εγγραφές.
- Εξαγωγή και εισαγωγή ρυθμίσεων
- Εξάγετε και εισάγετε όλες τις ρυθμίσεις μαζί.
- Περιήγηση εκτός cache
- Με ένα query string ?nitro=<token> βλέπετε τη σελίδα εκτός cache για δοκιμές, ενώ κάθε άλλος επισκέπτης συνεχίζει να παίρνει τη σελίδα από τη cache.
Αρχές σχεδιασμού
Τρεις κανόνες που όλη η σελίδα θεωρεί δεδομένους.
- Fail open, παντού
- Κάθε εσωτερικό σφάλμα καταλήγει στην κανονική συμπεριφορά του OpenCart — το αίτημα συνεχίζει σαν να μην ήταν εγκατεστημένο το Nitro.
- Ποτέ cache σε εξατομικευμένο περιεχόμενο
- Η κοινή cache δεν δέχεται δυναμικό render. Δεν υπάρχει καν διαδρομή που να το αφήνει να μπει.
- Κάθε ocmod hook ελέγχει πρώτα
- Κάθε patch στον πυρήνα δεν κάνει τίποτα όταν το Nitro είναι κλειστό ή δεν υπάρχει καν. Αν το κλείσετε, δεν μένει τίποτα πίσω.
Κάθε ρύθμιση
Κάθε διακόπτης, και τι πραγματικά κάνει.
Το Nitro έρχεται με λογικές προεπιλογές και ένα προφίλ που τις βάζει όλες μαζί. Εδώ είναι το σύνολο, αν θέλετε να πάτε παρακάτω.
Καθαρή cache
Τι σερβίρεται από τον δίσκο, για πόσο, και ποιος δεν παίρνει ποτέ σελίδα από τη cache.
- Κατάσταση
- Ο γενικός διακόπτης. Κλειστός, το Nitro δεν κάνει τίποτα και το OpenCart τρέχει όπως πάντα.
- Προφίλ
- Ρυθμίζει όλους τους διακόπτες μαζί: Safe, Recommended ή Aggressive. Λίστες και στοιχεία δεν τα αγγίζει.
- Full-page cache
- Σερβίρει έτοιμο HTML στους επισκέπτες πριν ξεκινήσει το OpenCart. Συνδεδεμένοι και καλάθια παίρνουν πάντα ζωντανή σελίδα.
- Διάρκεια cache
- Πόσο σερβίρεται μια σελίδα πριν ξαναχτιστεί. Μια αλλαγή στον κατάλογο την καθαρίζει ούτως ή άλλως αμέσως.
- Ανανέωση στο παρασκήνιο
- Μετά από αυτή την ηλικία η σελίδα σερβίρεται κανονικά και ανανεώνεται από πίσω, χωρίς να περιμένει κανείς.
- Διάρκεια ανά route
- Διαφορετική διάρκεια για σελίδες που ταιριάζουν σε ένα pattern. Κερδίζει το πρώτο.
- Σελίδες εκτός cache
- Όποια σελίδα περιέχει ένα από αυτά δεν μπαίνει ποτέ στη cache ούτε σερβίρεται από αυτήν.
- Παράμετροι που αγνοούνται
- Αφαιρούνται πριν γίνει η διεύθυνση κλειδί, ώστε utm και gclid να μοιράζονται μία σελίδα.
- Cookies χωρίς cache
- Όποιος έχει ένα από αυτά τα cookies παίρνει ζωντανή σελίδα — τίποτα δικό του δεν αποθηκεύεται.
- Ξεχωριστή cache ανά cookie
- Διαφορετική σελίδα στη cache αντί για καθόλου cache — για επιλεγμένο κατάστημα ή τιμοκατάλογο B2B.
- Cache ανά συσκευή
- Ξεχωριστή cache για desktop, κινητό και tablet. Χρειάζεται μόνο αν το theme στέλνει διαφορετικό HTML στο καθένα.
- Cache και για συνδεδεμένους
- Σερβίρει και τους συνδεδεμένους από τη cache, με το δικό τους καλάθι συμπληρωμένο στον server.
- Ζωντανή σελίδα σε ενεργούς
- Όποιος έχει ήδη καλάθι ή κουπόνι παίρνει ζωντανή σελίδα, ώστε το καλάθι να είναι σωστό σε κάθε theme.
- Παλιά σελίδα σε σφάλμα
- Αν μια σελίδα βγάλει σφάλμα και υπάρχει αντίγραφο στη cache, σερβίρεται το τελευταίο καλό.
- Μέγιστο μέγεθος cache
- Όριο στον δίσκο. Η προθέρμανση σβήνει τα παλιότερα όταν το ξεπεράσει. 0 σημαίνει χωρίς όριο.
- Headers για τον browser
- Cache-Control, ETag και Last-Modified στις σελίδες της cache, ώστε browsers και CDN να ελέγχουν φθηνά.
- Κανονικές διευθύνσεις προϊόντων
- Αποθηκεύει ένα προϊόν μία φορά αντί για μία ανά κατηγορία από την οποία βρίσκεται.
- Φιλτραρισμένες σελίδες εκτός index
- Κρατάει τις φιλτραρισμένες λίστες εκτός αποτελεσμάτων, χωρίς να εμποδίζει το crawling.
- Query cache
- Αποθηκεύει τα SELECT του eshop και τα ακυρώνει ανά πίνακα, ώστε μια αλλαγή να ρίχνει μόνο εκείνον.
- Γρήγορη file cache
- Αντικαθιστά τη file cache του OpenCart, που αργεί όσο μεγαλώνει. Ίδια δεδομένα, ίδια συμπεριφορά.
- Βελτιστοποίηση queries
- Επιλεγμένες, ασφαλείς αλλαγές σε γνωστά queries του OpenCart — τίποτα στην τύχη.
- Index τιμών
- Υπολογίζει εκ των προτέρων προσφορές και εκπτώσεις, ώστε οι λίστες να μην τα βγάζουν ανά προϊόν.
- Βελτιστοποίηση templates
- Χτίζει τις σελίδες με ταχύτερη μηχανή template και επιστρέφει στην κανονική αν κάτι δεν πάει καλά.
- Email άδειας
- Η άδεια καλύπτει μαζί αυτό το email και αυτό το domain, οπότε πρέπει να είναι αυτό της αγοράς.
Frontend
Τι φτάνει στον browser, με ποια σειρά, και τι επιτρέπεται να καθυστερήσει το πρώτο paint.
- Minify HTML
- Αφαιρεί κενά και σχόλια από το αποθηκευμένο έγγραφο.
- Minify CSS και JS
- Μόνο λιγότερα bytes. Δεν αλλάζει σειρά φόρτωσης, οπότε είναι ασφαλές σχεδόν σε κάθε theme.
- Ένωση αρχείων CSS
- Ενώνει τα τοπικά stylesheets σε ένα αρχείο και διορθώνει τα url() ώστε να βρίσκονται fonts και εικόνες.
- Ένωση αρχείων JS
- Ενώνει τα τοπικά scripts σε ένα, αφήνοντας έξω async, defer και module για να μη χαλάσει η εκτέλεση.
- Εξαιρέσεις ένωσης
- Αρχεία που μένουν εκτός — βιβλιοθήκες theme που φορτώνουν μόνες τους.
- Async CSS
- Φορτώνει τα stylesheets χωρίς να μπλοκάρει το πρώτο paint, με εφεδρεία σε noscript.
- Critical CSS
- Το CSS του πάνω μέρους μπαίνει στο head, ώστε το πρώτο paint να μην περιμένει τίποτα.
- Αυτόματο critical CSS
- Το βγάζει μόνο του. Είναι εκτίμηση — ελέγξτε το αποτέλεσμα αντί να το θεωρήσετε δεδομένο.
- Defer στη JavaScript
- Βάζει defer στα εξωτερικά scripts ώστε να μη σταματούν το χτίσιμο της σελίδας.
- Εξαιρέσεις defer
- Η μία βιβλιοθήκη που χαλάει με defer, μένει σκόπιμα μπλοκάρουσα.
- Καθυστέρηση ξένων scripts
- Τα scripts που ταιριάζουν περιμένουν την πρώτη κίνηση αντί να φορτώνουν μαζί με τη σελίδα.
- Resource hints
- Γραμμές preconnect, dns-prefetch και preload για όσα πραγματικά χρειάζεται η σελίδα.
- Prefetch στο hover
- Φέρνει την επόμενη σελίδα μόλις ο επισκέπτης δείξει πρόθεση, ώστε η πλοήγηση να μοιάζει ακαριαία.
- Τρόπος prefetch
- Το prefetch κατεβάζει την επόμενη σελίδα· το prerender τη χτίζει κιόλας — ταχύτερο αλλά βαρύτερο.
- Content visibility
- Αφήνει τον browser να παρακάμπτει layout και paint για τμήματα ώσπου να φανούν.
- Επιλογείς κάτω μέρους
- Σε ποια τμήματα ισχύει, ένας επιλογέας ανά γραμμή.
- CSS του Journal3 σε αρχεία
- Βγάζει το CSS του Journal3 από κάθε σελίδα και το βάζει σε αρχεία στη cache.
- Δυναμικά τμήματα
- Τα σημεία που γεμίζουν με τα δεδομένα του κάθε επισκέπτη — το καλάθι και ό,τι του μοιάζει.
- Συμπλήρωση στον server
- Τα συμπληρώνει πριν φύγει η σελίδα, ώστε μία σελίδα στη cache να κάνει για όλους.
Εικόνες
Οι εικόνες περνούν από τον resizer του OpenCart, ώστε να μένουν σε συμφωνία με την υπόλοιπη σελίδα.
- Σερβίρισμα WebP
- Σερβίρει WebP όπου βγαίνει μικρότερο αρχείο, με απευθείας σύνδεσμο ώστε οι παλιοί browsers να παίρνουν το αρχικό.
- Ποιότητα εικόνων
- Ποιότητα για JPEG και WebP που αλλάζουν μέγεθος. Το 80 είναι η ισορροπία.
- Γρήγορη αλλαγή μεγέθους
- Φτιάχνει thumbnails από πολύ μεγάλες εικόνες χωρίς timeout — η συνήθης αιτία για σπασμένο thumbnail.
- Διαστάσεις εικόνων
- Συμπληρώνει width και height όπου λείπουν, ώστε ο browser να κρατά τον χώρο και να μην πηδάει η σελίδα.
- Lazy-load εικόνων
- Οι εικόνες εκτός οθόνης φορτώνουν αργότερα· η πρώτη μένει άμεση ώστε να μην καθυστερεί το μεγαλύτερο paint.
- Εκμάθηση εικόνας LCP
- Μετράει ποια εικόνα ζωγραφίζει μεγαλύτερη ένας πραγματικός browser και προφορτώνει ακριβώς αυτή την επόμενη φορά.
Προστασία
Ο ίδιος δρόμος που δίνει την έτοιμη σελίδα διώχνει και όσα δεν πρέπει να φτάσουν ποτέ στο OpenCart.
- Firewall αιτημάτων
- Απορρίπτει γνωστές επιθέσεις και ανιχνεύσεις πριν φορτώσει το OpenCart, ώστε να μη στοιχίζουν σχεδόν τίποτα.
- Μπλοκαρισμένα patterns
- Οι συνηθισμένες επιθέσεις μπλοκάρονται ήδη. Εδώ μπαίνουν μόνο δικές σας προσθήκες, όπως /phpmyadmin.
- Μπλοκαρισμένα user-agents
- Bots που απορρίπτονται εντελώς. Ποτέ Google ή Bing εδώ.
- Φρένο στα scrapers
- Τα scrapers συνεχίζουν να παίρνουν σελίδες από τη cache· απλώς σταματούν να ζητούν καινούριες.
- Ποια bots φρενάρονται
- Σε ποια ονόματα bot ισχύει.
- Φραγή session από bots
- Σταματάει τα bots να γεμίζουν τον πίνακα session, που είναι ο λόγος που φτάνει τα gigabyte.
- Άμεσο 404
- Απαντά άμεσα σε εικόνες, CSS και fonts που λείπουν, αντί να χτίζει ολόκληρη σελίδα σφάλματος.
- Πηγή IP επισκέπτη
- Από πού διαβάζεται η διεύθυνση του επισκέπτη — απευθείας ή από τον proxy μπροστά σας.
- Εμπιστοσύνη σε forwarded HTTPS
- Μόνο για eshop πίσω από Cloudflare, CDN ή load balancer που κρατάει το HTTPS.
Ζέσταμα και διάγνωση
Πώς γεμίζει η cache χωρίς να το πληρώσει επισκέπτης, και πώς φαίνεται τι αργεί.
- Εντολή cron
- Διατρέχει το eshop ως επισκέπτης μέσω cron, ώστε ένας πραγματικός επισκέπτης σπάνια να βρει κρύα σελίδα.
- Όριο φόρτου στο ζέσταμα
- Το ζέσταμα σταματά όσο ο φόρτος είναι πάνω από αυτό, ώστε να μην ανταγωνίζεται την πραγματική κίνηση.
- Καταγραφή αργών ερωτημάτων βάσης δεδομένων
- Καταγράφει τα ερωτήματα βάσης δεδομένων πάνω από το όριο, ομαδοποιημένα και χωρίς τιμές, ώστε να φαίνεται τι θέλει index.
- Όριο αργού query
- Πόσα milliseconds μετράνε για αργό. Το 50 είναι λογική αφετηρία.
Δείτε πόσο κοστίζει.
Μία άδεια, ένα domain, για πάντα. Χωρίς πακέτα.