Bu makale makine çevirisi ayna makalesidir, orijinal makaleye geçmek için lütfen buraya tıklayın.

Görünüm: 15623|Yanıt: 0

[Web] Ön tarafta Nginx ve arka uçta Apache kullanıcının gerçek IP adresini elde eder

[Bağlantıyı kopyala]
Yayınlandı 3.11.2014 09:46:05 | | |
Son zamanlarda genel olarakApache-2.2 veApache-2.4 eklemek için "LNMP tek tıklama kurulum paketi",NginxÖn uç olarak Apache, yalnızca Nginx ön yüzünün IP adresini (127.0.0.1) elde edebilir, ancak kullanıcının gerçek IP adresini elde edemez.
Nginx şu şekilde yapılandırılmıştır:
  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.         }
Kopya kodu
  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;
Kopya kodu
Apache'de gerçek IP adresi almak için 2 modül vardır:
mod_rpaf: Apache-2.2 destekleniyor; Apache-2.4 desteklenmiyor. Çevrimiçi birçok eğitim programı var
mod_remoteip: Apache-2.4 modüllerle birlikte gelir; Apache-2.2 desteği;Öner
Apache-2.2.25
mod_rpaf modülü
  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
Kopya kodu
Apache yapılandırmasını ekle
  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
Kopya kodu
Not: RPAFproxy_ips sonra proxy sunucunun IP adresini ekleyin ve birkaç adres ekleyin
Test
  1. # /usr/local/apache/bin/apachectl -t
  2. # /usr/local/apache/bin/apachectl restart
  3. # 看日志
Kopya kodu
mod_remoteip
Apache-2.2 altında mod_remoteip yapılandırma şu şekildedir:
Kurma
  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
Kopya kodu
Profili değiştirin:
  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
Kopya kodu
Test:
  1. # /usr/local/apache/bin/apachectl -t
  2. # /usr/local/apache/bin/apachectl restart
  3. # 看日志
Kopya kodu
Apache-2.4 yapılandırması mod_remoteip yukarıda belirtilenlere ek olarak (kendi mod_remoteip olan modülün kurulmasına gerek yok), günlük formatını da değiştirmeniz gerekiyor (uzun süre atılır).
  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
Kopya kodu

%a'yı log formatına ekle





Önceki:Duydum ki Du Niang hâlâ böyle çalabiliyor! Titriyorsun! Salla!
Önümüzdeki:nginx proxy modu, istemcinin gerçek IP adresini elde edin
Feragatname:
Code Farmer Network tarafından yayımlanan tüm yazılım, programlama materyalleri veya makaleler yalnızca öğrenme ve araştırma amaçları içindir; Yukarıdaki içerik ticari veya yasa dışı amaçlarla kullanılamaz, aksi takdirde kullanıcılar tüm sonuçları ödemelidir. Bu sitedeki bilgiler internetten alınmakta olup, telif hakkı anlaşmazlıklarının bu siteyle hiçbir ilgisi yoktur. Yukarıdaki içeriği indirmeden sonraki 24 saat içinde bilgisayarınızdan tamamen silmelisiniz. Programı beğendiyseniz, lütfen orijinal yazılımı destekleyin, kayıt satın alın ve daha iyi orijinal hizmetler alın. Herhangi bir ihlal olursa, lütfen bizimle e-posta yoluyla iletişime geçin.

Mail To:help@itsvse.com