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

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

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

[Αντιγραφή συνδέσμου]
Δημοσιεύτηκε στις 3/11/2014 9:46:05 π.μ. | | |
Πρόσφατα, ήταν γενικάΑπάτσι-2.2 καιΑπάτσι-2.4 για προσθήκη στο "Πακέτο εγκατάστασης LNMP με ένα κλικ",NginxΩς front-end, ο Apache μπορεί να αποκτήσει μόνο τη διεύθυνση IP του front-end του Nginx (127.0.0.1), αλλά όχι την πραγματική διεύθυνση IP του χρήστη.
Το Nginx έχει διαμορφωθεί ως εξής:
  1. location / {
  2.         try_files $uri @apache;
  3.         }

  4. location @apache {
  5.         internal;
  6.         proxy_pass http://127.0.0.1:8080;
  7.         include proxy.conf;
  8.         }

  9. location ~ .*\.(php|php5)?$  {
  10.         proxy_pass http://127.0.0.1:8080;
  11.         include proxy.conf;
  12.         }
Αντιγραφή κώδικα
  1. proxy_connect_timeout 300s;
  2. proxy_send_timeout 900;
  3. proxy_read_timeout 900;
  4. proxy_buffer_size 32k;
  5. proxy_buffers 4 64k;
  6. proxy_busy_buffers_size 128k;
  7. proxy_redirect off;
  8. proxy_hide_header Vary;
  9. proxy_set_header Accept-Encoding '';
  10. proxy_set_header Referer $http_referer;
  11. proxy_set_header Cookie $http_cookie;
  12. proxy_set_header Host $host;
  13. proxy_set_header X-Real-IP $remote_addr;
  14. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
Αντιγραφή κώδικα
Υπάρχουν 2 ενότητες για τη λήψη πραγματικών διευθύνσεων IP στον Apache:
mod_rpaf: Υποστηρίζεται ο Apache-2.2. Ο Apache-2.4 δεν υποστηρίζεται. Υπάρχουν πολλά σεμινάρια στο διαδίκτυο
mod_remoteip: Το Apache-2.4 συνοδεύεται από μονάδες. Υποστήριξη Apache-2.2.συστήνω
Απάτσι-2.2.25
mod_rpaf ενότητα
  1. wget http://stderr.net/apache/rpaf/download/mod_rpaf-0.6.tar.gz
  2. tar -xzvf mod_rpaf-0.6.tar.gz
  3. cd mod_rpaf-0.6/
  4. /usr/local/apache/bin/apxs  -i -c -n mod_rpaf-2.0.slo mod_rpaf-2.0.c
Αντιγραφή κώδικα
Προσθήκη διαμόρφωσης Apache
  1. vi  /usr/local/apache/conf/httpd.conf
  2. Include conf/extra/httpd-rpaf.conf
  3. vi /usr/local/apache/conf/extra/httpd-rpaf.conf

  4. LoadModule rpaf_module        modules/mod_rpaf-2.0.so
  5. RPAFenable On
  6. RPAFsethostname On
  7. RPAFproxy_ips 127.0.0.1 10.8.0.110 # 代理服务器的ip地址(记得做相应修改)
  8. RPAFheader X-Forwarded-For
Αντιγραφή κώδικα
Σημείωση: Προσθέστε τη διεύθυνση IP του διακομιστή μεσολάβησης μετά από RPAFproxy_ips και συμπληρώστε μερικά
Δοκιμή
  1. # /usr/local/apache/bin/apachectl -t
  2. # /usr/local/apache/bin/apachectl restart
  3. # 看日志
Αντιγραφή κώδικα
mod_remoteip
Η mod_remoteip διαμόρφωσης στο Apache-2.2 είναι η εξής:
Εγκατάσταση
  1. wget https://github.com/ttkzw/mod_remoteip-httpd22/raw/master/mod_remoteip.c
  2. /usr/local/apache/bin/apxs -i -c -n mod_remoteip.so mod_remoteip.c
Αντιγραφή κώδικα
Τροποποιήστε το προφίλ:
  1. vi /usr/local/apache/conf/httpd.conf
  2. Include conf/extra/httpd-remoteip.conf
  3. vi /usr/local/apache/conf/extra/httpd-remoteip.conf
  4. LoadModule remoteip_module modules/mod_remoteip.so
  5. RemoteIPHeader X-Forwarded-For
  6. RemoteIPInternalProxy 127.0.0.1
Αντιγραφή κώδικα
Δοκιμή:
  1. # /usr/local/apache/bin/apachectl -t
  2. # /usr/local/apache/bin/apachectl restart
  3. # 看日志
Αντιγραφή κώδικα
Η διαμόρφωση του Apache-2.4 mod_remoteip εκτός από τα παραπάνω (η μονάδα με τη δική της mod_remoteip δεν χρειάζεται να εγκατασταθεί), πρέπει επίσης να τροποποιήσετε τη μορφή καταγραφής (πετώντας για μεγάλο χρονικό διάστημα)
  1. LogFormat "%h %a %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i"" combined
  2. LogFormat "%h %a %l %u %t "%r" %>s %b" common
  3. LogFormat "%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i" %I %O" combinedi
Αντιγραφή κώδικα

Προσθήκη %a στη μορφή καταγραφής





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

Mail To:help@itsvse.com