Τρόπος ρύθμισης παραμέτρων του HAProxy για συνδέσεις WebSocket

Tropos Rythmises Parametron Tou Haproxy Gia Syndeseis Websocket



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

Το HAProxy είναι ένα παράδειγμα δωρεάν και αξιόπιστου εξισορροπητή φορτίου που λειτουργεί επίσης ως αντίστροφος διακομιστής μεσολάβησης. Μπορείτε να διαμορφώσετε το HAProxy για συνδέσεις WebSocket ώστε να αξιοποιούνται καλύτερα οι δυνατότητες του WebSockets, ειδικά στη μεταφορά δεδομένων σε πραγματικό χρόνο, ελαχιστοποιώντας παράλληλα το φόρτο του διακομιστή χρησιμοποιώντας το HAProxy. Αυτή η ανάρτηση παρουσιάζει όλα τα απαραίτητα βήματα για τη διαμόρφωση του HAProxy για συνδέσεις WebSocket.

Οδηγός βήμα προς βήμα σχετικά με τον τρόπο ρύθμισης παραμέτρων του HAProxy για συνδέσεις WebSocket

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







1. Εγκαταστήστε το HAProxy

Το πρώτο βήμα για τη διαμόρφωση του HAProxy για συνδέσεις WebSocket είναι να διασφαλίσετε ότι έχετε εγκαταστήσει το HAProxy. Εάν το έχετε ήδη εγκαταστήσει, παραλείψτε αυτό το βήμα. Διαφορετικά, εκτελέστε την ακόλουθη εντολή για να το εγκαταστήσετε:



$ sudo εγκατάσταση apt-get απροξία



2. Επεξεργαστείτε τη διαμόρφωση HAProxy

Για να διαμορφώσουμε τις παραμέτρους του HAProxy για συνδέσεις WebSocket, πρέπει να επεξεργαστούμε τη διαμόρφωση του HAProxy για να υποστηρίζουμε τις συνδέσεις WebSocket. Πρέπει να τροποποιήσουμε την ενότητα 'Προεπιλογές' και να δημιουργήσουμε τις ενότητες 'Μπροστινό μέρος' και 'Πίσω'.





Ανοίξτε τη διαμόρφωση HAProxy χρησιμοποιώντας ένα πρόγραμμα επεξεργασίας κειμένου ως εξής:

$ sudo νανο / και τα λοιπά / απροξία / απροξία.cfg

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



Για αυτήν την περίπτωση, ορίσαμε το χρονικό όριο σύνδεσης στα 5000 χιλιοστά του δευτερολέπτου. Μπορείτε να προσαρμόσετε το χρονικό όριο για το πώς τα βλέπετε καλύτερα για την περίπτωσή σας. Προσαρμόστε τα με βάση την αίτησή σας και θυμηθείτε τη διάρκεια των συνεδριών WebSocket και πόσο μακροχρόνια αναμένετε να είναι.

Στη συνέχεια, πρέπει να δημιουργήσουμε την ενότητα 'Frontend' όπου δεσμεύουμε ποιες θύρες θα χρησιμοποιήσουμε για τις συνδέσεις WebSocket και σε ποιον διακομιστή υποστήριξης θα αναφέρουμε. Για αυτήν την περίπτωση, καθορίζουμε τη θύρα 80 και δίνουμε τη διεύθυνση URL για πρόσβαση στη σελίδα «Στατιστικά» για την παρακολούθηση του HAProxy μας. Τέλος, ορίζουμε σε ποιο τμήμα backend θα αναφέρεται στην εξισορρόπηση φορτίου.

Στην ενότητα 'Backend', κατανέμουμε το φορτίο χρησιμοποιώντας στρογγυλή ρόμπα. Η 'επιλογή προώθησης για' καθορίζει στο HAProxy να περιλαμβάνει μια κεφαλίδα 'X-Forward-For' που περιέχει τη διεύθυνση IP του πελάτη κατά την αποστολή του αιτήματος σύνδεσης. Με αυτόν τον τρόπο, ο διακομιστής υποστήριξης θα λάβει τη σωστή IP πελάτη.

Η 'επιλογή http-server-close' περιορίζει τους πόρους εξαλείφοντας τυχόν αδρανείς συνδέσεις από την ανάληψη των πόρων διακομιστή. Παρόλο που οι συνδέσεις WebSocket έχουν μεγάλη διάρκεια ζωής, πρέπει να ελέγξουμε για αδράνειες μακράς διάρκειας συνδέσεις και να τις κλείσουμε για να αποφύγουμε την περιττή σπατάλη πόρων.

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

Το HAProxy σας έχει πλέον διαμορφωθεί για συνδέσεις WebSocket. Αποθηκεύστε τις αλλαγές και κλείστε το αρχείο.

3. Δοκιμή εγκυρότητας

Πριν επανεκκινήσουμε το HAProxy, μπορούμε να εκτελέσουμε μια γρήγορη εντολή για να ελέγξουμε αν το αρχείο είναι έγκυρο και δεν έχει σφάλμα. Για αυτό, εκτελέστε την ακόλουθη εντολή:

$ sudo απροξία -ντο -φά / και τα λοιπά / απροξία / απροξία.cfg

4. Επανεκκινήστε και δοκιμάστε τη σύνδεση WebSocket

Μόλις το αρχείο είναι έγκυρο, επανεκκινήστε την υπηρεσία HAProxy.

Αυτό είναι. Διαμορφώσατε το HAProxy για συνδέσεις WebSocket. Μπορείτε να δοκιμάσετε τη σύνδεση για να βεβαιωθείτε ότι όλη η κίνηση του WebSocket προωθείται σωστά.

συμπέρασμα

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