Ο μηδενικός διακομιστής διακοπής λειτουργίας επανεκκινείται με το HAProxy - 💡 Fix My Ideas

Ο μηδενικός διακομιστής διακοπής λειτουργίας επανεκκινείται με το HAProxy

Ο μηδενικός διακομιστής διακοπής λειτουργίας επανεκκινείται με το HAProxy


Συγγραφέας: Ethan Holmes, 2019

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

Ένα από τα καθαρά χαρακτηριστικά γνωρίσματα που συναντήθηκα είναι μια ρύθμιση που θα σας επιτρέψει να επανεκκινήσετε τους διακομιστές σε ένα σύμπλεγμα χωρίς έναν μόνο χρήστη που αντιμετωπίζει σφάλμα 404, down-time ή χαμένες περιόδους σύνδεσης. Το κόλπο είναι να χρησιμοποιήσετε έναν κανόνα iptables για να αποκτήσετε Apache να απαντήσει σε δύο θύρες, ας πούμε 80 και 81. Το Apache τρέχει πραγματικά στη θύρα 80 και στη συνέχεια η θύρα 81 έχει ρυθμιστεί να προωθεί στη θύρα 80. Το HAProxy είναι στη συνέχεια ρυθμισμένο να χρησιμοποιεί τη θύρα του διακομιστή εφαρμογής 81 και ο ίδιος διακομιστής στη θύρα 80 ορίζεται ως το ζεστό αντίγραφο ασφαλείας.

Το blog igvita.com έχει έναν καλό τρόπο για να κάνει ακριβώς αυτό:

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

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

Αυτό που είναι δροσερό είναι ότι χωρίς καμία αναδιάταξη στο διακομιστή μεσολάβησης, μπορείτε να τραβήξετε ένα μηχάνημα χωρίς σύνδεση χάρη. Απλώς απενεργοποιείτε τη θύρα iptables προς τα εμπρός, το HAProxy θα παρατηρήσει ότι η θύρα 81 δεν είναι συνδεδεμένη και θα αρχίσει να στέλνει τους υπάρχοντες χρήστες στη θύρα 80 με τα τρέχοντα cookies τους. Στην πραγματικότητα, είναι ακριβώς το ίδιο παράδειγμα του Apache, οπότε όλες οι πληροφορίες για τις συνεδριάσεις παραμένουν άθικτες. Οι νέες συνεδρίες θα αποστέλλονται στους υπόλοιπους διακομιστές σας και μπορείτε να περιμένετε μέχρι να απομείνει κανένας από το μηχάνημα λειτουργίας συντήρησης πριν το βγάλετε εκτός σύνδεσης.

Το HAProxy Zero-Downtime επανεκκινεί με την επίσημη HAProxy τεκμηρίωση της HAPRoxy (βλ. Ενότητα 4.2, μαλακό stop χρησιμοποιώντας διακομιστές backup)



Μπορεί Να Σας Ενδιαφέρει

Ανανεωμένο γραφείο του γιατρού

Ανανεωμένο γραφείο του γιατρού


Υφασμάτινη λάμπα

Υφασμάτινη λάμπα


Craft Room σε ένα καλάθι

Craft Room σε ένα καλάθι


Πώς να: Βασικά στοιχεία του μπαρ

Πώς να: Βασικά στοιχεία του μπαρ