Dieser Artikel ist ein Spiegelartikel der maschinellen Übersetzung, bitte klicken Sie hier, um zum Originalartikel zu springen.

Ansehen: 15623|Antwort: 0

[Web] Nginx im Frontend und Apache im Backend erhalten die echte IP-Adresse des Benutzers

[Link kopieren]
Veröffentlicht am 03.11.2014 09:46:05 | | |
In letzter Zeit war er allgemeinApachen-2.2 undApachen-2.4 hinzuzufügen "lnmp Ein-Klick-Installationspaket",NginxAls Frontend kann Apache nur die IP-Adresse des Nginx-Frontends (127.0.0.1) erhalten, aber nicht die tatsächliche IP-Adresse des Benutzers.
Nginx ist wie folgt konfiguriert:
  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.         }
Code kopieren
  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;
Code kopieren
Es gibt 2 Module, um echte IP-Adressen in Apache zu erhalten:
mod_rpaf: Apache-2.2 wird unterstützt; Apache-2.4 wird nicht unterstützt. Es gibt viele Online-Tutorials
mod_remoteip: Apache-2.4 wird mit Modulen geliefert; Apache-2.2-Unterstützung;Empfehlen
Apache-2.2.25
mod_rpaf Modul
  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
Code kopieren
Apache-Konfiguration hinzufügen
  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
Code kopieren
Hinweis: Fügen Sie nach RPAFproxy_ips die IP-Adresse des Proxy-Servers hinzu und füllen Sie einige davon aus
Test
  1. # /usr/local/apache/bin/apachectl -t
  2. # /usr/local/apache/bin/apachectl restart
  3. # 看日志
Code kopieren
mod_remoteip
Die Konfiguration mod_remoteip unter Apache-2.2 ist wie folgt:
Installation
  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
Code kopieren
Ändern Sie das Profil:
  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
Code kopieren
Test:
  1. # /usr/local/apache/bin/apachectl -t
  2. # /usr/local/apache/bin/apachectl restart
  3. # 看日志
Code kopieren
Die Apache-2.4-Konfiguration mod_remoteip Zusätzlich zu dem oben genannten (das Modul mit eigenem mod_remoteip muss nicht installiert werden) muss man auch das Log-Format anpassen (lange Werfen).
  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
Code kopieren

Fügen Sie %a zum Log-Format hinzu





Vorhergehend:Ich habe gehört, dass Du Niang immer noch so spielen kann! Du schüttelst dich! Schüttel!
Nächster:nginx-Proxy-Modus, um die reale IP-Adresse des Clients zu erhalten
Verzichtserklärung:
Alle von Code Farmer Network veröffentlichten Software, Programmiermaterialien oder Artikel dienen ausschließlich Lern- und Forschungszwecken; Die oben genannten Inhalte dürfen nicht für kommerzielle oder illegale Zwecke verwendet werden, andernfalls tragen die Nutzer alle Konsequenzen. Die Informationen auf dieser Seite stammen aus dem Internet, und Urheberrechtsstreitigkeiten haben nichts mit dieser Seite zu tun. Sie müssen die oben genannten Inhalte innerhalb von 24 Stunden nach dem Download vollständig von Ihrem Computer löschen. Wenn Ihnen das Programm gefällt, unterstützen Sie bitte echte Software, kaufen Sie die Registrierung und erhalten Sie bessere echte Dienstleistungen. Falls es eine Verletzung gibt, kontaktieren Sie uns bitte per E-Mail.

Mail To:help@itsvse.com