X-Forwarded-For Το X-Forwarded-For είναι μια κεφαλίδα επέκτασης. Το πρωτόκολλο HTTP/1.1 (RFC 2616) δεν το ορίζει, εισήχθη αρχικά από το Squid, ένα λογισμικό μεσολάβησης προσωρινής αποθήκευσης, για να αντιπροσωπεύει την πραγματική IP του αιτούντος HTTP και έχει γίνει πλέον ένα de facto πρότυπο, που χρησιμοποιείται ευρέως από μεγάλους διακομιστές μεσολάβησης HTTP, εξισορρόπηση φορτίου και άλλες υπηρεσίες προώθησης και έχει εγγραφεί στο πρότυπο RFC 7239 (Forwarded HTTP Extension).
Σε μια δομή δικτύου με πολλαπλά επίπεδα διακομιστών μεσολάβησης (π.χ. μια διεύθυνση IP CDN και Anti-DDoS Pro συνδεδεμένη σε ένα τείχος προστασίας εφαρμογών ιστού), οι διευθύνσεις IP όλων των διακομιστών μεσολάβησης προστίθενται στο πεδίο x-forwarded-for. Αυτό συμβαίνει επειδή ο διακομιστής μεσολάβησης γράφει τη διεύθυνση IP του διακομιστή μεσολάβησης για κάθε προώθηση.
Η μορφή έχει ως εξής:
X-Forwarded-For: client_ip, proxy1_ip, proxy2_ip Forge X-Forwarded-For
Προσθέτουμε την κεφαλίδα αιτήματος X-Forwarded-For μέσω ταχυδρόμου, η οποία σφυρηλατεί κάτι σαν αυτό:
Χρησιμοποίησα την υπηρεσία SLB του Alibaba Cloud, SLB -> IIS, αν λάβουμε την πρώτη διεύθυνση IP, πρέπει να είναι λανθασμένη, η τελευταία διεύθυνση IP είναι η πραγματική διεύθυνση IP του πελάτη.
(Στην πραγματική ζωή, πρέπει να το αποκτήσετε σύμφωνα με τη δική σας αρχιτεκτονική και η απόκτηση της πραγματικής διεύθυνσης IP του πελάτη εξαρτάται από το πόσα επίπεδα διακομιστή μεσολάβησης έχετε περάσει.Πιστεύεις στο πρώτο στρώμα)
Για να χρησιμοποιήσετε το nginx ως αντίστροφο διακομιστή μεσολάβησης, μπορείτε να το ρυθμίσετε ως εξής:
Ο εξωτερικός διακομιστής μεσολάβησης δεν εμπιστεύεται την είσοδο X-Forwarded-For του πελάτη, αντικαθιστώντας την απευθείας, αντί να την προσαρτά.
|