Πώς να εγκαταστήσετε το Varnish Cache για Apache στο CentOS/RHEL 8


Το Varnish Cache είναι ένας δωρεάν ανοιχτός κώδικας, σύγχρονος και υψηλής απόδοσης επιταχυντής εφαρμογών ιστού. Είναι ένας γρήγορος αντίστροφος διακομιστής μεσολάβησης HTTP που αποθηκεύει στην κρυφή μνήμη περιεχόμενο για να επιταχύνει την απόδοση του διακομιστή ιστού σας, αποθηκεύοντας περιεχόμενο ιστού στη μνήμη διακομιστή – σε μια κρυφή μνήμη. Έχει ρυθμιστεί να εκτελείται μπροστά από έναν διακομιστή προέλευσης, όπως ο διακομιστής ιστού Apache (HTTPD).

Όταν ένας πελάτης ζητά περιεχόμενο, το Varnish αποδέχεται το αίτημα HTTP, στέλνει το αίτημα στον διακομιστή προέλευσης, αποθηκεύει προσωρινά τα επιστρεφόμενα αντικείμενα και απαντά στο αίτημα πελάτη. Την επόμενη φορά που ο πελάτης θα ζητήσει το ίδιο περιεχόμενο, το Varnish θα το εξυπηρετήσει από την κρυφή μνήμη. Με αυτόν τον τρόπο, μειώνει τον χρόνο απόκρισης και την κατανάλωση εύρους ζώνης δικτύου σε μελλοντικά ισοδύναμα αιτήματα.

Το Varnish λειτουργεί επίσης ως δρομολογητής αιτημάτων HTTP, τείχος προστασίας εφαρμογών ιστού, εξισορρόπηση φορτίου και πολλά άλλα. Έχει διαμορφωθεί χρησιμοποιώντας την ευέλικτη Γλώσσα διαμόρφωσης βερνικιού (VCL), η οποία είναι επεκτάσιμη χρησιμοποιώντας Ενότητες βερνικιού (επίσης γνωστές ως VMODs >), υποστηρίζει Edge Side Includes (ESL), συμπίεση και αποσυμπίεση Gzip και πολλά άλλα.

Σε αυτό το άρθρο, θα μάθετε πώς να εγκαταστήσετε τον διακομιστή ιστού Apache HTTPD και τον Varnish Cache 6 σε έναν νέο διακομιστή CentOS/RHEL 8, συμπεριλαμβανομένης της διαμόρφωσης Βερνίκι για εκτέλεση μπροστά από τον διακομιστή HTTPD.

Προαπαιτούμενα:

  • Ένας διακομιστής με εγκατάσταση CentOS 8
  • Διακομιστής με εγκατάσταση RHEL 8 με ενεργοποιημένη συνδρομή Red Hat στο σύστημά σας.

Βήμα 1: Εγκατάσταση του διακομιστή Web Apache σε CentOS/RHEL 8

1. Ξεκινήστε ενημερώνοντας όλα τα εγκατεστημένα πακέτα λογισμικού στο σύστημα ως εξής, χρησιμοποιώντας την εντολή DNF.

dnf update

2. Στη συνέχεια, εκτελέστε την ακόλουθη εντολή για να εγκαταστήσετε τον διακομιστή ιστού Apache HTTP από το χώρο αποθήκευσης AppStream.

dnf install httpd

3. Μόλις ολοκληρωθεί η εγκατάσταση, ξεκινήστε την υπηρεσία httpd, ενεργοποιήστε την αυτόματη εκκίνηση κατά την εκκίνηση του συστήματος και ελέγξτε την κατάστασή της για να επιβεβαιώσετε ότι είναι σε λειτουργία και εκτελείται, χρησιμοποιώντας την εντολή systemctl.

systemctl start httpd
systemctl enable httpd
systemctl status httpd

4. Από προεπιλογή το CentOS/RHEL 8 περιλαμβάνει ένα πλήρως κλειδωμένο τείχος προστασίας (εκτελέστε firewall-cmd –state για επιβεβαίωση). Πρέπει να ανοίξετε την πρόσβαση στην υπηρεσία HTTP στο τείχος προστασίας για να επιτρέψετε στους χρήστες να έχουν πρόσβαση σε ιστότοπους ή εφαρμογές που εκτελούνται μέσω HTTP και επίσης να φορτώσετε ξανά τις ρυθμίσεις του τείχους προστασίας για να εφαρμόσετε τις νέες αλλαγές.

firewall-cmd --zone=public --permanent --add-service=http
firewall-cmd --reload

Βήμα 2: Εγκατάσταση του Varnish Cache 6.4 στο CentOS/RHEL 8

5. Τώρα που εκτελείται ο διακομιστής ιστού Apache, μπορείτε να προχωρήσετε περαιτέρω στην εγκατάσταση του Varnish Cache στο σύστημα χρησιμοποιώντας την ακόλουθη εντολή.

dnf module install varnish

6. Μετά την επιτυχή εγκατάσταση, μπορείτε να επαληθεύσετε την έκδοση του Varnish που είναι εγκατεστημένη στο σύστημά σας.

varnishd -V

7. Στη συνέχεια, το κύριο εκτελέσιμο αρχείο εγκαθίσταται ως /usr/sbin/varnishd. Επίσης, τα αρχεία διαμόρφωσης Varnish αποθηκεύονται στον κατάλογο /etc/varnish, όπου:

  • /etc/varnish/default.vcl – είναι το κύριο αρχείο διαμόρφωσης βερνικιού γραμμένο με χρήση VCL.
  • /etc/varnish/secret – είναι το μυστικό αρχείο βερνικιού.

8. Τώρα ξεκινήστε την υπηρεσία βερνικιού, προς το παρόν, ενεργοποιήστε την αυτόματη εκκίνηση κατά την εκκίνηση του συστήματος σε περίπτωση επανεκκίνησης διακομιστή και ελέγξτε την κατάστασή του για να βεβαιωθείτε ότι λειτουργεί και λειτουργεί ως εξής.

systemctl start varnish
systemctl enable varnish
systemctl status varnish

Βήμα 3: Διαμόρφωση του Apache ώστε να λειτουργεί με το Varnish Cache

9. Τώρα ήρθε η ώρα να ρυθμίσετε τις παραμέτρους του Varnish Cache ώστε να εκτελείται μπροστά από την υπηρεσία Apache. Από προεπιλογή, ο διακομιστής Apache έχει ρυθμιστεί να ακούει στη θύρα 80, αυτό ορίζεται στο κύριο αρχείο διαμόρφωσης /etc/httpd/conf/httpd.conf.

Ανοίξτε το για επεξεργασία χρησιμοποιώντας το αγαπημένο σας πρόγραμμα επεξεργασίας κειμένου.

vi /etc/httpd/conf/httpd.conf

Αναζητήστε την παράμετρο Listen. Για να εκτελέσετε το Varnish μπροστά από τον διακομιστή Apache, θα πρέπει να αλλάξετε την προεπιλεγμένη θύρα 80 σε 8080 (ή οποιαδήποτε άλλη θύρα της επιλογής σας) ως φαίνεται στο παρακάτω στιγμιότυπο οθόνης.

Αυτή η θύρα θα προστεθεί ως θύρα του διακομιστή υποστήριξης στο αρχείο διαμόρφωσης Varnish αργότερα.

Επίσης, η διαμόρφωση εικονικού κεντρικού υπολογιστή για κάθε ιστότοπο/εφαρμογή που θα εξυπηρετεί μέσω του Varnish θα πρέπει να ρυθμιστεί ώστε να ακούει την παραπάνω θύρα. Εδώ είναι η διαμόρφωση για τον ιστότοπο δοκιμής μας (/etc/httpd/conf.d/tecmint.lan.conf).

<VirtualHost *:8080>
    DocumentRoot "/var/www/html/tecmint.lan/"
    ServerName www.tecmint.lan
    # Other directives here
</VirtualHost>

Σημαντικό: Για να αποτρέψετε τη χρήση της προεπιλεγμένης δοκιμαστικής σελίδας διακομιστή HTTP Apache, σχολιάστε όλες τις γραμμές στο αρχείο /etc/httpd/conf.d /welcome.confή απλώς διαγράψτε το αρχείο.

rm /etc/httpd/conf.d/welcome.conf 

10. Στη συνέχεια, δοκιμάστε τη σύνταξη διαμόρφωσης httpd για τυχόν σφάλματα. Εάν είναι εντάξει, επανεκκινήστε την υπηρεσία httpd για να εφαρμόσετε τις νέες αλλαγές.

httpd -t
systemctl restart httpd

Διαμόρφωση βερνικιού για Systemd

11. Για να αναπτύξετε το Varnish μπροστά από το HTTPD, πρέπει απλώς να το ρυθμίσετε ώστε να ακούει τα αιτήματα πελατών στην προεπιλεγμένη θύρα HTTP 80 όπως εξηγείται παρακάτω.

Λάβετε υπόψη ότι στην Varnish Cache 6.0 και νεότερη έκδοση, πρέπει να ρυθμίσετε τη θύρα να ακούει ο διακομιστής varnish στο αρχείο υπηρεσίας Varnish για systemd. Αρχικά, ανοίξτε το για επεξεργασία.

systemctl edit --full  varnish

Αναζητήστε τη γραμμή ExecStart και, στη συνέχεια, αλλάξτε την τιμή του διακόπτη -a (που καθορίζει το βερνίκι ακούστε τη διεύθυνση και τη θύρα) από :6081 σε :80 όπως υποδεικνύεται στο παρακάτω στιγμιότυπο οθόνης.

Είναι σημαντικό ότι εάν δεν καθορίσετε μια διεύθυνση, το varnishd θα ακούει σε όλες τις διαθέσιμες διεπαφές IPv4 και IPv6 που είναι ενεργές στον διακομιστή.

ExecStart=/usr/sbin/varnishd -a :80 -f /etc/varnish/default.vcl -s malloc,256m

Αποθηκεύστε τις αλλαγές στο αρχείο και βγείτε.

Διαμόρφωση διακομιστών Backend Varnish χρησιμοποιώντας VCL

12. Τώρα, πρέπει να διαμορφώσετε τον διακομιστή προέλευσης, που είναι γνωστός στην ορολογία Varnish ως backend. Είναι ο διακομιστής που κατανοεί το HTTP, το Varnish συνομιλεί, για την ανάκτηση περιεχομένου – httpd σε αυτήν την περίπτωση. Έχει ρυθμιστεί στο κύριο αρχείο διαμόρφωσης /etc/varnish/default.vcl.

vi /etc/varnish/default.vcl 

Υπάρχει μια προεπιλεγμένη ενότητα διαμόρφωσης backend που ονομάζεται προεπιλογή. Μπορείτε να αλλάξετε το "προεπιλογή " σε διακομιστής1 (ή οποιοδήποτε όνομα της επιλογής σας για να πληροί τα πρότυπα περιβάλλοντος). Από προεπιλογή, η παράμετρος host δείχνει στον localhost, με την υπόθεση ότι ο διακομιστής υποστήριξης εκτελείται στον localhost.

Στη συνέχεια, ορίστε τη θύρα σε 8080 (η θύρα που ορίσατε στο αρχείο διαμόρφωσης εικονικού κεντρικού υπολογιστή Apache) όπως φαίνεται στο στιγμιότυπο οθόνης.

backend server1 {
    .host = "127.0.0.1";
    .port = "8080";
}

Εάν ο διακομιστής backend σας εκτελείται σε διαφορετικό κεντρικό υπολογιστή, για παράδειγμα, άλλο διακομιστή με διεύθυνση 10.42.1.10, τότε η παράμετρος host θα πρέπει να δείχνει αυτή τη διεύθυνση IP.

backend server1 {
    .host = "10.42.1.10";
    .port = "8080";
}

Αποθηκεύστε το αρχείο και κλείστε το.

13. Αφού κάνετε όλες τις απαραίτητες αλλαγές σχετικά με το Varnish, φορτώστε ξανά τη διαμόρφωση του systemd manager για να αντικατοπτρίζει τις νέες αλλαγές στο αρχείο υπηρεσίας Varnish και επίσης επανεκκινήστε την υπηρεσία Βερνίκι για την εφαρμογή των συνολικών αλλαγών.

systemctl daemon-reload
systemctl restart varnish

14. Σε αυτό το σημείο, το Varnish και το Apache θα πρέπει τώρα να ακούν στη θύρα 80 και 8080 αντίστοιχα. Μπορείτε να το επιβεβαιώσετε χρησιμοποιώντας την εντολή socket statistics.

ss -tpln

Βήμα 4: Δοκιμή Varnish Cache και Εγκατάσταση Apache

14. Για να δοκιμάσετε τη ρύθμιση Varnish Cache-HTTPD, ανοίξτε ένα πρόγραμμα περιήγησης ιστού και πλοηγηθείτε χρησιμοποιώντας τον διακομιστή IP ή FQDN όπως φαίνεται στο παρακάτω στιγμιότυπο οθόνης.

http://10.42.0.144
OR
http://www.tecmin.lan

Στη συνέχεια, ελέγξτε εάν οι ιστοσελίδες εξυπηρετούνται μέσω Varnish Cache ως εξής. Ελέγξτε τις κεφαλίδες HTTP κάνοντας δεξί κλικ στην εμφανιζόμενη ιστοσελίδα, επιλέξτε Επιθεώρηση για να ανοίξετε τα εργαλεία προγραμματιστή και, στη συνέχεια, κάντε κλικ στην καρτέλα Δίκτυο και επαναφόρτωση της σελίδας. Στη συνέχεια, επιλέξτε ένα αίτημα για προβολή των κεφαλίδων HTTP για να το επιβεβαιώσετε όπως φαίνεται στο παρακάτω στιγμιότυπο οθόνης.

Εναλλακτικά, μπορείτε να εκτελέσετε την ακόλουθη εντολή curl για να την επαληθεύσετε.

curl -I http:///10.42.0.144
OR
#curl -I http:///www.tecmint.lan

Χρήσιμα βοηθητικά προγράμματα κρυφής μνήμης βερνικιού

15. Ας τελειώσουμε αυτόν τον οδηγό εξετάζοντας μερικά από τα χρήσιμα προγράμματα που περιλαμβάνει η διανομή Varnish Cache. Περιλαμβάνουν βοηθητικά προγράμματα για διαχείριση κρυφής μνήμης βερνικιού, εμφάνιση λεπτομερών εγγραφών καταγραφής και προβολή στατιστικών στοιχείων απόδοσης βερνικιού όπως περιγράφεται παρακάτω.

varnishadm

Το πρώτο είναι το varnishadm που χρησιμοποιείται για τη διαχείριση μιας τρέχουσας παρουσίας Varnish. Δημιουργεί μια σύνδεση διεπαφής γραμμής εντολών με το varnishd. Μπορεί να επηρεάσει μια παρουσία του Varnish που εκτελείται ξεκινώντας και σταματώντας το varnishd, αλλάζοντας τις παραμέτρους διαμόρφωσης, φορτώνοντας ξανά το VCL, καταχωρώντας backends και πολλά άλλα.

varnishadm
> backend.list

Για περισσότερες πληροφορίες, διαβάστε το man varnishadm.

βερνίκι

Το επόμενο πρόγραμμα είναι το varnishlog το οποίο χρησιμοποιείται για πρόσβαση σε δεδομένα για συγκεκριμένα αιτήματα (δηλ. πληροφορίες σχετικά με συγκεκριμένους πελάτες και αιτήματα). Παρέχει μεγάλο όγκο πληροφοριών, επομένως είναι συνήθως απαραίτητο να φιλτράρεται.

varnishlog

Για περισσότερες πληροφορίες, διαβάστε το man varnishlog.

varnishstat

Διαθέτουμε επίσης varnishstat (varnishstats) που χρησιμοποιείται για πρόσβαση σε γενικά στατιστικά στοιχεία, όπως ο αριθμός των συνολικών αιτημάτων, ο αριθμός των αντικειμένων και άλλα.

varnishstat

Για περισσότερες πληροφορίες, διαβάστε το man varnishstat.

varnishtop

Στη συνέχεια, έχουμε το varnishtop το οποίο είναι ένα βοηθητικό πρόγραμμα που διαβάζει το αρχείο καταγραφής Varnish και παρουσιάζει μια συνεχώς ενημερωμένη λίστα με τις πιο συχνά εμφανιζόμενες εγγραφές καταγραφής.

varnishtop 

Για περισσότερες πληροφορίες, διαβάστε το man varnishtop.

βερνικομανής

Ένα άλλο χρήσιμο βοηθητικό πρόγραμμα είναι το βοηθητικό πρόγραμμα varnishhist (varnish history) που διαβάζει τα αρχεία καταγραφής Varnish και παρουσιάζει ένα συνεχώς ενημερωμένο ιστόγραμμα που δείχνει την κατανομή των τελευταίων N αιτημάτων από τους επεξεργασία.

varnishhist

Για περισσότερες πληροφορίες, διαβάστε το man varnishhist.

Ορίστε το! Αναπτύξατε επιτυχώς την Varnish Cache για να επιταχύνετε το περιεχόμενο της εφαρμογής Ιστού που εμφανίζεται με χρήση του διακομιστή Apache HTTP στο CentOS/RHEL 8.

Εάν έχετε απορίες σχετικά με αυτό το θέμα ή σκέψεις να μοιραστείτε, χρησιμοποιήστε την παρακάτω φόρμα σχολίων. Ανατρέξτε στην τεκμηρίωση του Varnish Cache 6.0 για περισσότερες πληροφορίες.

Εάν θέλετε να ενεργοποιήσετε το HTTPS στον ιστότοπό σας, ανατρέξτε στο επόμενο άρθρο μας, το οποίο θα δείξει πώς να ενεργοποιήσετε το SSL/TLS για την κρυφή μνήμη βερνικιού χρησιμοποιώντας το Hitch στο CentOS/RHEL 8.