Dit artikel is een spiegelartikel van machinevertaling, klik hier om naar het oorspronkelijke artikel te gaan.

Bekijken: 15623|Antwoord: 0

[Web] Nginx aan de front-end en Apache aan de back-end verkrijgen het echte IP-adres van de gebruiker

[Link kopiëren]
Geplaatst op 03-11-2014 09:46:05 | | |
Onlangs was hij in het algemeenApache-2.2 enApache-2.4 om toe te voegen aan "LNMP één-klik installatiepakket",NginxAls front-end kan Apache alleen het IP-adres van de Nginx-front-end (127.0.0.1) verkrijgen, maar niet het echte IP-adres van de gebruiker.
Nginx is als volgt geconfigureerd:
  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 kopiëren
  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 kopiëren
Er zijn 2 modules om echte IP-adressen in Apache te verkrijgen:
mod_rpaf: Apache-2.2 wordt ondersteund; Apache-2.4 wordt niet ondersteund. Er zijn veel tutorials online te vinden
mod_remoteip: Apache-2.4 wordt geleverd met modules; Apache-2.2 ondersteuning;Aanbevelen
Apache-2.2.25
mod_rpaf module
  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 kopiëren
Apache-configuratie toevoegen
  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 kopiëren
Let op: Voeg na RPAFproxy_ips het IP-adres van de proxyserver toe en vul er een paar in
Test
  1. # /usr/local/apache/bin/apachectl -t
  2. # /usr/local/apache/bin/apachectl restart
  3. # 看日志
Code kopiëren
mod_remoteip
De configuratie mod_remoteip onder Apache-2.2 is als volgt:
Installatie
  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 kopiëren
Pas het profiel aan:
  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 kopiëren
Test:
  1. # /usr/local/apache/bin/apachectl -t
  2. # /usr/local/apache/bin/apachectl restart
  3. # 看日志
Code kopiëren
Apache-2.4-configuratie mod_remoteip naast het bovenstaande (de module met een eigen mod_remoteip hoeft niet geïnstalleerd te worden), moet je ook het logformaat aanpassen (lang gooien)
  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 kopiëren

Voeg %a toe aan het logboekformaat





Vorig:Ik hoorde dat Du Niang nog steeds zo kan spelen! Je trilt! Schud!
Volgend:nginx proxy-modus, verkrijg het echte IP-adres van de client
Disclaimer:
Alle software, programmeermaterialen of artikelen die door Code Farmer Network worden gepubliceerd, zijn uitsluitend bedoeld voor leer- en onderzoeksdoeleinden; De bovenstaande inhoud mag niet worden gebruikt voor commerciële of illegale doeleinden, anders dragen gebruikers alle gevolgen. De informatie op deze site komt van het internet, en auteursrechtconflicten hebben niets met deze site te maken. Je moet bovenstaande inhoud volledig van je computer verwijderen binnen 24 uur na het downloaden. Als je het programma leuk vindt, steun dan de echte software, koop registratie en krijg betere echte diensten. Als er sprake is van een inbreuk, neem dan contact met ons op via e-mail.

Mail To:help@itsvse.com