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

Άποψη: 15060|Απάντηση: 0

[Ιστός] Ο διακομιστής nginx front-end και back-end nginx καταγράφει τη διεύθυνση IP του αρχικού πελάτη

[Αντιγραφή συνδέσμου]
Δημοσιεύτηκε στις 3/11/2014 9:53:23 π.μ. | | |

Αυτή η ενότητα μας επιτρέπει να αλλάξουμε την τιμή της διεύθυνσης IP του πελάτη στην κεφαλίδα αιτήματος πελάτη (π.χ. X-Real-IP ή X-Forwarded-For).

    Αυτή η δυνατότητα είναι πολύ χρήσιμη για διακομιστές Nginx εάν το Nginx λειτουργεί πίσω από ορισμένους διακομιστές μεσολάβησης εξισορρόπησης φορτίου επιπέδου 7, επειδή η τοπική IP του αιτήματος πελάτη (δηλαδή η διεύθυνση αιτήματος του πελάτη) προστίθεται στην κεφαλίδα της διεύθυνσης IP του πελάτη κατά τη διέλευση από τον διακομιστή μεσολάβησης επιπέδου 7, έτσι ώστε το backend Nginx να μπορεί να αποκτήσει την τιμή διεύθυνσης IP του πελάτη. Το άρθρωμα δεν είναι εγκατεστημένο από προεπιλογή, οπότε αν θέλετε να χρησιμοποιήσετε το άρθρωμα, πρέπει να προσθέσετε την επιλογή --με-http_realip_module κατά τη μεταγλώττιση της εγκατάστασης.

    Ο λόγος για τη χρήση αυτής της ενότητας είναι ότι επιτρέπει στον διακομιστή παρασκηνίου να καταγράφει τη διεύθυνση IP του αρχικού πελάτη.

Παράδειγμα διαμόρφωσης
set_real_ip_from 192.168.1.0/24;
set_real_ip_from 192.168.2.1;
real_ip_header X-Real-IP;


Δάχτυλα    Παραγγελία

   Η ενότητα παρέχει μόνο δύο οδηγίες.

Όνομα εντολής: set_real_ip_from

Λειτουργία: Ο καθορισμός μιας αξιόπιστης διεύθυνσης μέσω αυτής της εντολής θα αντικατασταθεί με μια ακριβή διεύθυνση IP. Οι αξιόπιστες υποδοχές Unix μπορούν επίσης να χρησιμοποιηθούν από την έκδοση 0.8.22 και μετά. Το σύνολο IP εδώ αναφέρεται στο frontendNginxΒερνίκιήΚαλαμάριτηςΠΕΔιεύθυνση.

Σύνταξη: set_real_ip_from [η διεύθυνση| CIDR|" unix:"]

Προεπιλεγμένη τιμή: καμία

Περιβάλλον χρήσης: http, διακομιστής, τοποθεσία

Όνομα εντολής: real_ip_header

Λειτουργία: Αυτή η εντολή χρησιμοποιείται για να ορίσετε ποια κεφαλίδα θα χρησιμοποιηθεί για την αντικατάσταση της διεύθυνσης IP. Εάν χρησιμοποιείται X-Forwarded-For, η λειτουργική μονάδα θα αντικαταστήσει τη διεύθυνση IP του διακομιστή μεσολάβησης προσκηνίου με την τελευταία διεύθυνση IP στην κεφαλίδα X-Forwarded-For.

Σύνταξη: real_ip_header [X-Real-IP| X-Forwarded-For]

Προεπιλεγμένη τιμή: real_ip_header X-Real-IP

Περιβάλλον χρήσης: http, διακομιστής, τοποθεσία

Χρήση περιπτώσεων   

    Στο παρακάτω παράδειγμα, το περιβάλλον μας είναι το εξής: υπάρχουν δύο διακομιστές Nginx, ο ένας είναι το frontend και ο άλλος είναι το backend, το frontend Nginx χρησιμοποιείται ως διακομιστής μεσολάβησης και το backend Nginx χρησιμοποιείται για την παροχή πρόσβασης στη σελίδα και υπάρχει επίσης ένας πελάτης με την ακόλουθη διεύθυνση IP:

  

    Μπροστινό μέρος Nginx: 192.168.7.10

    Υποστήριξη Nginx: 192.168.1.15

    Πελάτης υποδοχής: 218.239.201.36

    Η διαμόρφωση Nginx στο frontend μοιάζει με αυτό:

διακομιστής {
  ακούω 80;
  server_name www.xx.com;

τοποθεσία / {
    ρίζα html;
    ευρετήριο index.html index.htm;
Σύνολο χαρακτήρων UTF-8;
  }

τοποθεσία /865 {
    proxy_pass http://192.168.3.139:80/;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header x-forwarded-for $proxy_add_x_forwarded_for;
proxy_set_header Host $host.
    proxy_redirect απενεργοποιημένο?
  }

……
}

Η διαμόρφωση Nginx για το backend είναι η εξής:

διακομιστής {
  ακούω 80;
  server_name localhost;

  τοποθεσία / {
    ρίζα /var/www/html;
    ευρετήριο index.html index.htm;
  }

Πρόσβαση στο τεστ

    Εάν έχουμε πρόσβαση στο http://www.xx.com/865, δεν υπάρχει πρόβλημα, μπορεί να είναι μια κανονική πρόσβαση, το αρχείο καταγραφής πρόσβασης έχει ως εξής:

    Αρχεία καταγραφής από το frontend Nginx:

218.239.201.36 - - [30/Aug/2011:16:09:56 +0800] "GET /865/ HTTP/1.1" 200 151 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12 GTB7.1"

Αρχεία καταγραφής από το backend Nginx:

192.168.7.10 - - [30/Aug/2011:16:09:56 +0800] "GET // HTTP/1.0" 200 151 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12 GTB7.1"

Βλέπουμε ότι τα αρχεία καταγραφής Nginx του backend δεν καταγράφουν τη διεύθυνση IP του αρχικού πελάτη, αλλά τη διεύθυνση IP του frontend Nginx.

    Εάν τροποποιήσετε τη διαμόρφωση του διακομιστή Nginx στο παρασκήνιο σε:

διακομιστής {
  ακούω 80;
  server_name localhost;
  set_real_ip_from 192.168.3.0/24;
set_real_ip_from 100.100.0.0/16;
  real_ip_header X-Real-IP;

  τοποθεσία / {
    ρίζα html;
    ευρετήριο index.html index.htm;
  }

    ……
}

Στη συνέχεια κάνουμε ξανά το τεστ πρόσβασης:

    Αρχεία καταγραφής από το frontend Nginx:

218.239.201.36 - - [30/Aug/2011:16:10:28 +0800 "GET /865/ HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12 GTB7.1"

     Αρχεία καταγραφής από το backend Nginx:

218.239.201.36 - - [30/Aug/2011:16:10:28 +0800] "GET // HTTP/1.0" 304 0 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12 GTB7.1"

Μπορεί να φανεί ότι αυτή τη φορά το φόντο καταγράφει τη διεύθυνση IP του πελάτη.







Προηγούμενος:λειτουργία διακομιστή μεσολάβησης nginx, αποκτήστε την πραγματική διεύθυνση IP του πελάτη
Επόμενος:Δίσκος! X3.1 Όλες οι εκδόσεις του X3 παρακάμπτουν την άδεια λήψης συνημμένου χωρίς πιστώσεις Ευπάθεια απεριόριστης λήψης
Αποκήρυξη:
Όλο το λογισμικό, το υλικό προγραμματισμού ή τα άρθρα που δημοσιεύονται από το Code Farmer Network προορίζονται μόνο για μαθησιακούς και ερευνητικούς σκοπούς. Το παραπάνω περιεχόμενο δεν θα χρησιμοποιηθεί για εμπορικούς ή παράνομους σκοπούς, άλλως οι χρήστες θα υποστούν όλες τις συνέπειες. Οι πληροφορίες σε αυτόν τον ιστότοπο προέρχονται από το Διαδίκτυο και οι διαφορές πνευματικών δικαιωμάτων δεν έχουν καμία σχέση με αυτόν τον ιστότοπο. Πρέπει να διαγράψετε εντελώς το παραπάνω περιεχόμενο από τον υπολογιστή σας εντός 24 ωρών από τη λήψη. Εάν σας αρέσει το πρόγραμμα, υποστηρίξτε γνήσιο λογισμικό, αγοράστε εγγραφή και λάβετε καλύτερες γνήσιες υπηρεσίες. Εάν υπάρχει οποιαδήποτε παραβίαση, επικοινωνήστε μαζί μας μέσω email.

Mail To:help@itsvse.com