Η αλλαγή του http_proxy μπορεί να μην κάνει τίποτα όταν υπάρχει ήδη ρύθμιση gRPC υψηλότερης προτεραιότητας. Ξεκινήστε προσδιορίζοντας την υλοποίηση: η παρακάτω συμπεριφορά ανήκει στον προεπιλεγμένο mapper HTTP διακομιστή μεσολάβησης του gRPC C-Core και στα εξαρτώμενά του.

Ο mapper ελέγχει ένα όρισμα διακομιστή μεσολάβησης καναλιού, μετά το grpc_proxy, μετά το https_proxy, μετά το http_proxy και σταματά στην πρώτη ρυθμισμένη τιμή.

Η ανακάλυψη παράκαμψης έχει δική της σειρά: το no_grpc_proxy υπερισχύει του no_proxy. Μια παλιά τιμή εκεί μπορεί να εξηγήσει γιατί ένας στόχος αποφεύγει έναν κατά τα άλλα ρυθμισμένο διακομιστή μεσολάβησης.

Αυτός ο mapper χρησιμοποιεί HTTP CONNECT. Το τεκμηριωμένο URI διακομιστή μεσολάβησης αναμένει σχήμα HTTP· μια υπηρεσία gRPC προστατευμένη με TLS δεν απαιτεί από μόνη της προστατευμένο με TLS τελικό σημείο διακομιστή μεσολάβησης. Ελέγξτε την υποστηριζόμενη πιστοποίηση ξεχωριστά αντί να υποθέσετε ότι είναι διαθέσιμο οποιοδήποτε σχήμα σύνδεσης προγράμματος περιήγησης. Για δημόσιο στόχο gRPC όπου επιτρέπονται δημόσιοι ενδιάμεσοι, η λίστα HTTP proxy προσφέρει υποψήφια τελικά σημεία για το επιλεγμένο URI HTTP proxy· επιβεβαιώστε την πρόσβαση στον πραγματικό στόχο CONNECT και στη θύρα.

Μια υλοποίηση gRPC σε Java, Go, JavaScript ή άλλη γλώσσα μπορεί να έχει διαφορετικό κώδικα μεταφοράς και διαμόρφωση. Μην εφαρμόζετε μια λίστα μεταβλητών C-Core ως καθολικό κανόνα για ό,τι ονομάζεται gRPC.

Για ένα κανάλι που απέτυχε, διατηρήστε τον επιλεγμένο διακομιστή μεσολάβησης, την απόφαση παράκαμψης, τον στόχο και το στάδιο του σφάλματος. Ένα προσβάσιμο HTTP API μέσω άλλου πελάτη δεν αποδεικνύει ότι αυτός ο mapper χρησιμοποίησε τις ίδιες ρυθμίσεις ή ότι ο διακομιστής μεσολάβησης επιτρέπει τον απαιτούμενο προορισμό CONNECT.

Σχετικά άρθρα