Χρησιμοποιώ το Alibaba Cloud SLB load balancer για περισσότερα από 5 χρόνια και το χρησιμοποιώ από την αρχική εσωτερική έκδοση beta του Alibaba Cloud και μετά την ανάπτυξη, παρουσιάστηκε το ακόλουθο σφάλμα:
Τα σφάλματα εμφανίζονται κατά διαστήματα, μετά την αρχική εκκίνηση, δεν υπάρχει σφάλμα πύλης 502, μετά από αναμονή ενός λεπτού, εμφανίζεται το σφάλμα, το κοντέινερ υποστήριξης Windows Server IIS ASP.NET ιστότοπο.
Κάντε κλικ στις υπηρεσίες IIS από τον διακομιστή για να ανοίξετε το πρόγραμμα περιήγησης, μπορείτε να περιηγηθείτε κανονικά, έμμεσα προβλήματα εξισορρόπησης φορτίου SLB, είναι η πρώτη φορά που το αντιμετωπίζω.
Λύση:
Το πρόβλημα εμφανίζεται κυρίως στις ρυθμίσεις "Μέθοδος ελέγχου υγείας", οι προεπιλεγμένες ρυθμίσεις είναι οι εξής:
Ο έλεγχος υγείας του backend ζητείται με τον τρόπο head και εάν ο αντίστοιχος κωδικός κατάστασης επιστρέψει 2xx ή 3xx, ο διακομιστής backend θεωρείται κανονικός.
Προσπαθήσαμε να κάνουμε ένα αίτημα κεφαλίδας με τρεις τρόπους, πρώτον, έτρεξα απευθείας το τοπικό έργο και το δοκίμασα τοπικά.
Δοκιμή 1:
Χρησιμοποιήστε το τεστ ταχυδρόμου όπως φαίνεται παρακάτω:
Επιστρέφοντας στην κατάσταση 404 Not Found, στην πραγματικότητα, εδώ, ξέρουμε τι το προκάλεσε.
Δοκιμή 2:
Χρησιμοποιήστε τη δοκιμή μπούκλας όπως φαίνεται παρακάτω:
C:\Users\itsvse>curl -i -X HEAD http://localhost:60155/
Warning: Setting custom HTTP method to HEAD with -X/--request may not work the
Warning: way you want. Consider using -I/--head instead. http/1.1 404 Δεν βρέθηκε
Cache-Control: private
Content-Length: 4432
Content-Type: text/html; charset=utf-8
Server: Microsoft-IIS/10.0
X-SourceFiles: =?UTF-8?B?QzpccHJvamVjdFxteVxDb2RlU2hhcmluZ1xDb2RlU2hhcmluZy5XZWJVSVxIb21lXEVycm9yNDA0?=
X-Powered-By: ASP.NET
Date: Tue, 13 Aug 2019 03:53:04 GMT
curl: (56) Recv failure: Connection was reset
Επιστρέφεται επίσης ένας κωδικός κατάστασης 404.
Δοκιμή 3:
Αυτή τη φορά, δοκιμάσαμε απευθείας στον επίσημο διακομιστή, μέσω της δοκιμής μπούκλας στο PowerShell, όπως φαίνεται στο παρακάτω σχήμα:
Μπορείτε να δείτε ότι η ίδια σελίδα ζητείται μέσω της επικεφαλίδας,Μερικές φορές επιστρέφουν404κωδικός κατάστασης, μερικές φορές επιστρέφεται200Κωδικός κατάστασης, επιβεβαιώνοντας έτσι τα διαλείποντα σφάλματα 502 που συναντήσαμε στην αρχή.
Τι προκαλεί asp.net κατά διαστήματα επιστροφή κωδικών κατάστασης 404 και 200;
Δεδομένου ότι η αρχική μας σελίδα έχει προσωρινή μνήμη, όταν ο χρήστης χρησιμοποιεί τη μέθοδο λήψης για να ζητήσει την αρχική σελίδα, η σελίδα θα αποθηκευτεί με επιτυχία και, στη συνέχεια, το head and get θα επιστρέφει πάντα την αποθηκευμένη σελίδα και θα επιστρέψει επίσης τον κωδικό απόκρισης 200, εάν, μετά τη λήξη της προσωρινής μνήμης, κανένας χρήστης δεν κάνει αίτημα μεθόδου λήψης, μόνο το αίτημα μεθόδου κεφαλής μέσω της εντολής, θα προκύψει σφάλμα 404. Εκτιμάται ότι λίγοι άνθρωποι θα αντιμετωπίσουν τέτοιου είδους προβλήματα.
Η λύση είναι να ελέγξετε όλους τους κωδικούς κατάστασης απόκρισης στη λειτουργία ελέγχου υγείας, όπως φαίνεται στο παρακάτω σχήμα:
Πώς να αντιμετωπίσετε ανωμαλίες στον έλεγχο υγείας του Layer 7 Listening (HTTP/HTTPS):Η σύνδεση με υπερσύνδεσμο είναι ορατή.
(Τέλος)
|