Ta članek je zrcalni članek strojnega prevajanja, kliknite tukaj za skok na izvirni članek.

Pogled: 15623|Odgovoriti: 0

[Web] Nginx na sprednji strani in Apache na zaledju pridobita pravi IP naslov uporabnika

[Kopiraj povezavo]
Objavljeno na 3. 11. 2014 09:46:05 | | |
V zadnjem času je bil na splošnoApache-2.2 inApache-2.4 za dodajanje k "LNMP paket za namestitev z enim klikom",NginxKot vmesnik lahko Apache pridobi le IP naslov Nginx vmesnika (127.0.0.1), ne pa pravega IP naslova uporabnika.
Nginx je konfiguriran takole:
  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.         }
Kopiraj kodo
  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;
Kopiraj kodo
Obstajata 2 modula za pridobivanje pravih IP naslovov v Apache:
mod_rpaf: Podprt je Apache-2.2; Apache-2.4 ni podprt. Na spletu je veliko vodičev
mod_remoteip: Apache-2.4 vključuje module; podporo za Apache-2.2;priporočiti
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
Kopiraj kodo
Dodaj konfiguracijo 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
Kopiraj kodo
Opomba: Po RPAFproxy_ips dodajte IP naslov proxy strežnika in izpolnite nekaj
Preizkus
  1. # /usr/local/apache/bin/apachectl -t
  2. # /usr/local/apache/bin/apachectl restart
  3. # 看日志
Kopiraj kodo
mod_remoteip
Konfiguracija mod_remoteip pod Apache-2.2 je naslednja:
Namestitev
  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
Kopiraj kodo
Spremenite 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
Kopiraj kodo
Preizkus:
  1. # /usr/local/apache/bin/apachectl -t
  2. # /usr/local/apache/bin/apachectl restart
  3. # 看日志
Kopiraj kodo
Konfiguracija Apache-2.4 mod_remoteip poleg zgoraj navedenega (modul z lastnim mod_remoteip ni treba namestiti), morate tudi spremeniti format dnevnika (dolgo metanje)
  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
Kopiraj kodo

Dodajte %a v format loga





Prejšnji:Slišal sem, da Du Niang še vedno zna igrati tako! Treseš se! Tres!
Naslednji:nginx proxy način, pridobiti pravi IP naslov odjemalca
Disclaimer:
Vsa programska oprema, programski materiali ali članki, ki jih izdaja Code Farmer Network, so namenjeni zgolj učnim in raziskovalnim namenom; Zgornja vsebina ne sme biti uporabljena v komercialne ali nezakonite namene, sicer uporabniki nosijo vse posledice. Informacije na tej strani prihajajo z interneta, spori glede avtorskih pravic pa nimajo nobene zveze s to stranjo. Zgornjo vsebino morate popolnoma izbrisati z računalnika v 24 urah po prenosu. Če vam je program všeč, podprite pristno programsko opremo, kupite registracijo in pridobite boljše pristne storitve. Če pride do kakršne koli kršitve, nas prosimo kontaktirajte po elektronski pošti.

Mail To:help@itsvse.com