8 Κορυφαίοι Διακομιστές Αντίστροφου Μεσολάβησης Ανοιχτού Κώδικα για Linux


Ένας αντίστροφος διακομιστής μεσολάβησης είναι ένας τύπος διακομιστή μεσολάβησης που αναπτύσσεται μεταξύ πελατών και διακομιστών υποστήριξης/προέλευσης, για παράδειγμα, διακομιστή HTTP όπως NGINX, Apache, κ.λπ.. ή διακομιστές εφαρμογών γραμμένοι σε Nodejs, Python, Java, Ruby, PHP και πολλές άλλες γλώσσες προγραμματισμού.

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

Γενικά, ένας αντίστροφος διακομιστής μεσολάβησης είναι ένας διακομιστής μεσολάβησης με εσωτερική όψη που χρησιμοποιείται ως «μπροστινό μέρος» για τον έλεγχο και την προστασία της πρόσβασης σε διακομιστές υποστήριξης σε ένα ιδιωτικό δίκτυο: συνήθως αναπτύσσεται πίσω από το τείχος προστασίας δικτύου .

Βοηθά τους διακομιστές back-end να επιτύχουν ανωνυμία για να ενισχύσουν την ασφάλειά τους. Σε μια υποδομή πληροφορικής, ένας αντίστροφος διακομιστής μεσολάβησης μπορεί επίσης να λειτουργήσει ως τείχος προστασίας εφαρμογών, εξισορρόπηση φορτίου, τερματιστής TLS, επιταχυντής ιστού (με την προσωρινή αποθήκευση στατικού και δυναμικού περιεχομένου) και πολλά άλλα.

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

1. HAProxy

HAProxy (HAProxy, που σημαίνει Υψηλής διαθεσιμότητας μεσολάβησης), ένα δωρεάν, ανοιχτού κώδικα, πολύ γρήγορο, αξιόπιστο και κορυφαίο λογισμικό εξισορρόπησης φορτίου και διακομιστή μεσολάβησης για TCP και Εφαρμογές που βασίζονται σε HTTP, κατασκευασμένες για υψηλή διαθεσιμότητα.

Το HAProxy είναι ένας αντίστροφος διακομιστής μεσολάβησης HTTP, ένας διακομιστής μεσολάβησης TCP και ένας κανονικοποιητής, ένας τερματιστής/εναρκτήρας/εκφόρτωση SSL/TLS, ένας διακομιστής μεσολάβησης προσωρινής αποθήκευσης, ένας πρόγραμμα εκφόρτωσης συμπίεσης HTTP, ένας ρυθμιστής κυκλοφορίας, ένας διακόπτης που βασίζεται σε περιεχόμενο, μια πύλη FastCGI και πολλά άλλα. Αποτελεί επίσης προστασία έναντι DDoS και κατάχρησης υπηρεσιών.

Τροφοδοτείται από έναν μηχανισμό που βασίζεται σε συμβάντα, χωρίς αποκλεισμό που συνδυάζει ένα πολύ γρήγορο επίπεδο I/O με έναν προγραμματιστή πολλαπλών νημάτων που βασίζεται σε προτεραιότητα, ο οποίος του επιτρέπει να αντιμετωπίζει εύκολα δεκάδες χιλιάδες ταυτόχρονες συνδέσεις. Συγκεκριμένα, το HAProxy χρησιμοποιεί το πρωτόκολλο PROXY για να μεταβιβάσει τις πληροφορίες σύνδεσης του πελάτη σε διακομιστές υποστήριξης ή προέλευσης, έτσι ώστε μια εφαρμογή να λαμβάνει όλες τις σχετικές πληροφορίες.

Ορισμένες από τις βασικές δυνατότητες του HAProxy περιλαμβάνουν διακομιστή μεσολάβησης, υποστήριξη SSL, παρακολούθηση τόσο των καταστάσεων του διακομιστή όσο και της δικής του κατάστασης, υψηλή διαθεσιμότητα, εξισορρόπηση φορτίου, κολλητικότητα (διατήρηση επισκέπτη στον ίδιο διακομιστή ακόμη και σε διάφορα συμβάντα), εναλλαγή περιεχομένου, επανεγγραφή HTTP και ανακατεύθυνση. προστασία διακομιστή, καταγραφή, στατιστικά στοιχεία και πολλά άλλα.

2. NGINX

NGINX, ένας δωρεάν, ανοιχτού κώδικα, υψηλής απόδοσης και πολύ δημοφιλής διακομιστής HTTP και αντίστροφος διακομιστής μεσολάβησης. Λειτουργεί επίσης ως διακομιστής μεσολάβησης IMAP/POP3. Το NGINX είναι γνωστό για την υψηλή του απόδοση, τη σταθερότητα, το πλούσιο σύνολο χαρακτηριστικών, την απλή και ευέλικτη διαμόρφωση και τη χαμηλή κατανάλωση πόρων (ιδιαίτερα το μικρό αποτύπωμα μνήμης).

Ακριβώς όπως το HAProxy, το NGINX έχει μια αρχιτεκτονική που βασίζεται σε συμβάντα, επομένως δεν έχει πρόβλημα να αντιμετωπίσει δεκάδες χιλιάδες ταυτόχρονες συνδέσεις, καθώς χρησιμοποιεί το HAProxy's PROXY πρωτόκολλο.

Το NGINX υποστηρίζει επιταχυνόμενο αντίστροφο διακομιστή μεσολάβησης με προσωρινή αποθήκευση χρησιμοποιώντας τη λειτουργική μονάδα ngx_http_proxy_module, η οποία επιτρέπει τη διαβίβαση αιτημάτων σε άλλο διακομιστή μέσω πρωτοκόλλων εκτός από το HTTP, όπως τα FastCGI, uwsgi, SCGI και memcached.

Είναι σημαντικό ότι υποστηρίζει την εξισορρόπηση φορτίου και την ανοχή σφαλμάτων που είναι ζωτικής σημασίας πτυχές κατανεμημένων υπολογιστικών συστημάτων μεγάλης κλίμακας. Η ενότητα ngx_http_upstream_module επιτρέπει τον καθορισμό ομάδων διακομιστών υποστήριξης για τη διανομή των αιτημάτων που προέρχονται από πελάτες. Αυτό κάνει τις εφαρμογές σας πιο στιβαρές, διαθέσιμες και αξιόπιστες, εξαιρετικά επεκτάσιμες, με χρόνο απόκρισης και απόδοση. Επιπλέον, όσον αφορά την ασφάλεια, υποστηρίζει τερματισμό SSL/TLS και τόσες άλλες δυνατότητες ασφαλείας.

Χρήσιμα άρθρα στον διακομιστή ιστού Nginx που ίσως θέλετε να διαβάσετε:

  • Πώς να εγκαταστήσετε τον διακομιστή Web Nginx στο Ubuntu 20.04
  • Πώς να εγκαταστήσετε το Nginx στο CentOS 8
  • Πώς να ενεργοποιήσετε τη σελίδα κατάστασης NGINX

3. Βερνίκι HTTP Cache

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

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

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

Το βερνίκι είναι επίσης επεκτάσιμο – μπορεί να επεκταθεί χρησιμοποιώντας Varnish Modules (VMODs) και οι χρήστες μπορούν να γράψουν τις προσαρμοσμένες μονάδες τους ή να χρησιμοποιήσουν τις μονάδες που παρέχονται από την κοινότητα.

Ο κύριος περιορισμός του Varnish είναι η έλλειψη υποστήριξης για SSL/TLS. Ο μόνος τρόπος για να ενεργοποιήσετε το HTTPS είναι να αναπτύξετε έναν τερματιστή ή offloader SSL/TLS όπως HAProxy ή NGINX στο μπροστά του.

4. Træfɪk

Το Træfɪk (προφέρεται Traffic) είναι ένας δωρεάν, ανοιχτού κώδικα, σύγχρονος και γρήγορος ανάστροφος διακομιστής μεσολάβησης και εξισορρόπησης φορτίου HTTP για την ανάπτυξη μικρο-υπηρεσιών που υποστηρίζει πολλαπλούς αλγόριθμους εξισορρόπησης φορτίου. Μπορεί να διασυνδέεται με διάφορους παρόχους (ή μηχανισμούς ανακάλυψης υπηρεσιών ή εργαλεία ενορχήστρωσης), όπως Kubernates, Docker, Etcd, Rest API, Mesos/Marathon, Swarm και Zookeper.

Το αξιαγάπητο χαρακτηριστικό του είναι η ικανότητά του να διαχειρίζεται τη διαμόρφωσή του αυτόματα και δυναμικά, ανακαλύπτοντας έτσι τη σωστή διαμόρφωση για τις υπηρεσίες σας. Αυτό το κάνει σαρώνοντας την υποδομή σας για να βρει σχετικές πληροφορίες και ανακαλύπτει ποια υπηρεσία εξυπηρετεί ποιο αίτημα από τον εξωτερικό κόσμο. Οι πάροχοι λένε στην Træfɪk πού βρίσκονται οι εφαρμογές ή οι μικροϋπηρεσίες σας.

Οι άλλες δυνατότητες του Træfɪk υποστηρίζονται για WebSockets, HTTP/2 και GRPC, καθώς και για hot reloading (ενημερώνει συνεχώς τη διαμόρφωσή του χωρίς επανεκκίνηση), HTTPS με χρήση πιστοποιητικών Let’s Encrypt (υποστήριξη πιστοποιητικού μπαλαντέρ) και εκθέτει ένα REST API. Διατηρεί επίσης αρχεία καταγραφής πρόσβασης και παρέχει μετρήσεις (Rest, Prometheus, Datadog, Statsd, InfluxDB).

Επίσης, το Træfɪk διατίθεται με μια απλή διεπαφή χρήστη ιστού που βασίζεται σε HTML που χρησιμοποιείται για να παρακολουθεί τα γεγονότα. Υποστηρίζει επίσης διακόπτες κυκλώματος, αιτήματα επανάληψης δοκιμής, περιορισμό ρυθμού και βασικό έλεγχο ταυτότητας.

5. Διακομιστής κυκλοφορίας Apache

Παλαιότερα εμπορικό προϊόν που ανήκε στην Yahoo, το οποίο αργότερα παραδόθηκε στο Ίδρυμα Apache, ο διακομιστής επισκεψιμότητας του Apache είναι ένας δωρεάν διακομιστής ανοιχτού κώδικα και γρήγορης προσωρινής αποθήκευσης προς τα εμπρός και προς τα πίσω. υπηρέτης.

Ο Διακομιστής κυκλοφορίας λειτουργεί επίσης ως εξισορρόπηση φορτίου και μπορεί να συμμετέχει σε ευέλικτες ιεραρχίες κρυφής μνήμης. Είναι γνωστό ότι χειριζόταν πάνω από 400 TB ημερησίως κίνησης στο Yahoo.

Διαθέτει ένα σύνολο παραμέτρων διατήρησης, φιλτραρίσματος ή ανωνυμοποίησης αιτημάτων περιεχομένου και είναι επεκτάσιμο μέσω ενός API που επιτρέπει στους χρήστες να δημιουργούν προσαρμοσμένες προσθήκες για να τροποποιούν τις κεφαλίδες HTTP, να χειρίζονται αιτήματα ESI ή να σχεδιάζουν νέους αλγόριθμους κρυφής μνήμης.

6. Διακομιστής μεσολάβησης Squid

Το Squid είναι ένας δωρεάν, ανοιχτού κώδικα και πολύ γνωστός διακομιστής μεσολάβησης και δαίμονας προσωρινής μνήμης Ιστού που υποστηρίζει διάφορα πρωτόκολλα όπως HTTP, HTTPS, FTP και άλλα. Διαθέτει λειτουργία αντίστροφου διακομιστή μεσολάβησης (httpd-accelerator) που αποθηκεύει προσωρινά τα εισερχόμενα αιτήματα για εξερχόμενα δεδομένα.

Υποστηρίζει πλούσιες επιλογές βελτιστοποίησης κυκλοφορίας, έλεγχο πρόσβασης, εξουσιοδότηση, εγκαταστάσεις καταγραφής και πολλά άλλα.

7. Λίρα

Το A Pound είναι ένα άλλο δωρεάν και ανοιχτού κώδικα, ελαφρύ αντίστροφο διακομιστή μεσολάβησης και εξισορρόπησης φορτίου και front-end για διακομιστές ιστού. Είναι επίσης ένας τερματιστής SSL (που αποκρυπτογραφεί αιτήματα HTTPS από πελάτες και τα στέλνει ως απλό HTTP στους διακομιστές υποστήριξης), ένα απολυμαντικό HTTP/HTTPS (που επαληθεύει αιτήματα για ορθότητα και δέχεται μόνο σωστά διαμορφωμένα) και αποτυχία -πάνω από διακομιστή.

8. Διακομιστής HTTP Apache

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

Επιπλέον, μπορείτε επίσης να αγοράσετε το Skipper, το νέο παιδί στο μπλοκ. Είναι ένας δωρεάν και ανοιχτού κώδικα δρομολογητής HTTP και αντίστροφος διακομιστής μεσολάβησης για τη σύνθεση υπηρεσιών, συμπεριλαμβανομένων περιπτώσεων χρήσης όπως το Kubernetes Ingress.

Αυτό ήταν το μόνο που είχαμε για εσάς σε αυτόν τον οδηγό. Για περισσότερες πληροφορίες σχετικά με κάθε εργαλείο σε αυτήν τη λίστα, ανατρέξτε στις αντίστοιχες ιστοσελίδες τους. Μην ξεχάσετε να μοιραστείτε τις σκέψεις σας μαζί μας μέσω της παρακάτω φόρμας σχολίων.