Šis straipsnis yra veidrodinis mašininio vertimo straipsnis, spauskite čia norėdami pereiti prie originalaus straipsnio.

Rodinys: 15623|Atsakyti: 0

[Žiniatinklis] "Nginx" priekinėje dalyje ir "Apache" galinėje dalyje gauna tikrąjį vartotojo IP adresą

[Kopijuoti nuorodą]
Paskelbta 2014-11-03 09:46:05 | | |
Neseniai jis apskritai buvoApache-2.2 irApache-2.4 pridėti prie "LNMP diegimo paketas vienu paspaudimu",NginxKaip priekinė dalis, "Apache" gali gauti tik "Nginx" priekinės dalies (127.0.0.1) IP adresą, bet ne tikrąjį vartotojo IP adresą.
"Nginx" sukonfigūruotas taip:
  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.         }
Kopijuoti kodą
  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;
Kopijuoti kodą
Yra 2 moduliai, skirti gauti tikrus IP adresus "Apache":
mod_rpaf: Apache-2.2 palaikomas; Apache-2.4 nepalaikomas. Internete yra daug vadovėlių
mod_remoteip: Apache-2.4 ateina su moduliais; Apache-2.2 palaikymas;Rekomenduoti
Apache-2.2.25
mod_rpaf modulis
  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
Kopijuoti kodą
Pridėti "Apache" konfigūraciją
  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
Kopijuoti kodą
Pastaba: po RPAFproxy_ips pridėkite tarpinio serverio IP adresą ir užpildykite kelis
Bandymo
  1. # /usr/local/apache/bin/apachectl -t
  2. # /usr/local/apache/bin/apachectl restart
  3. # 看日志
Kopijuoti kodą
mod_remoteip
Apache-2.2 konfigūracijos mod_remoteip yra tokia:
Diegimo
  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
Kopijuoti kodą
Modifikuokite 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
Kopijuoti kodą
Bandymo:
  1. # /usr/local/apache/bin/apachectl -t
  2. # /usr/local/apache/bin/apachectl restart
  3. # 看日志
Kopijuoti kodą
"Apache-2.4" konfigūracija mod_remoteip be to, kas išdėstyta aukščiau (modulio su savo mod_remoteip nereikia įdiegti), taip pat turite pakeisti žurnalo formatą (ilgą laiką mesti)
  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
Kopijuoti kodą

Įtraukti %a į žurnalo formatą





Ankstesnis:Girdėjau, kad Du Niang vis dar gali žaisti taip! Tu drebi! Supurtykite!
Kitą:nginx tarpinio serverio režimu, gaukite tikrąjį kliento IP adresą
Atsakomybės apribojimas:
Visa programinė įranga, programavimo medžiaga ar straipsniai, kuriuos skelbia Code Farmer Network, yra skirti tik mokymosi ir mokslinių tyrimų tikslams; Aukščiau nurodytas turinys negali būti naudojamas komerciniais ar neteisėtais tikslais, priešingu atveju vartotojai prisiima visas pasekmes. Šioje svetainėje pateikiama informacija gaunama iš interneto, o ginčai dėl autorių teisių neturi nieko bendra su šia svetaine. Turite visiškai ištrinti aukščiau pateiktą turinį iš savo kompiuterio per 24 valandas nuo atsisiuntimo. Jei jums patinka programa, palaikykite autentišką programinę įrangą, įsigykite registraciją ir gaukite geresnes autentiškas paslaugas. Jei yra kokių nors pažeidimų, susisiekite su mumis el. paštu.

Mail To:help@itsvse.com