Διατήρηση κωδικοποιημένων διαδρομών σε υπάρχουσα διαδρομή προώθησης HTTP του NGINX
Χρησιμοποιήστε το request_uri όταν το συμβόλαιο προώθησης απαιτεί την αρχική διαδρομή και το ερώτημα, διατηρώντας την υπάρχουσα επικύρωση προορισμού.
Μια διαδρομή που χτίζεται από $uri μπορεί να στείλει διαφορετική διαδρομή από αυτήν που έδωσε ο πελάτης. Για το http://service.example/files/a%2Fb?view=raw, η διαφυγμένη κάθετος αποτελεί μέρος αυτής της αρχικής γραφής.
| Μεταβλητή | Αναπαράσταση |
|---|---|
| $uri | Το τρέχον κανονικοποιημένο URI, το οποίο μπορεί να αλλάξει κατά την εσωτερική επεξεργασία |
| $request_uri | Το αρχικό URI του αιτήματος, συμπεριλαμβανομένων των ορισμάτων ερωτήματος |
Σε μια υπάρχουσα διάταξη διακομιστή μεσολάβησης προώθησης HTTP που ήδη επιλέγει και επικυρώνει την αρχή προορισμού, η αρχική διαδρομή και το ερώτημα μπορούν να διατηρηθούν με:
proxy_pass http://$http_host$request_uri;$http_host παρέχει την επιλεγμένη αρχή της κεφαλίδας Host σε αυτή τη διάταξη. Διατηρήστε τους περιορισμούς πελάτη του ακροατή, την πολιτική προορισμού και τη διαμόρφωση επίλυσης ονομάτων.
Η αντικατάσταση του $uri$is_args$args με αυτή την έκφραση αλλάζει την αναπαράσταση που αποστέλλεται· η προηγούμενη χρησιμοποιεί την κανονικοποιημένη διαδρομή και τα τρέχοντα ορίσματα. Επιλέξτε σύμφωνα με το συμβόλαιο του τελικού σημείου, ειδικά όταν τα διαφυγμένα διαχωριστικά έχουν σημασία ή μια υπογραφή καλύπτει τον αρχικό στόχο. Η σκόπιμη επανεγγραφή διαδρομής έχει διαφορετική απαίτηση.
Αυτό ισχύει για το ορατό αίτημα HTTP. Μια σήραγγα HTTPS CONNECT μεταφέρει το μεταγενέστερο αίτημα μέσα σε TLS και απαιτεί τη δική της υποστηριζόμενη διαχείριση.