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

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

[Web] Ön uç nginx ve arka uç nginx sunucusu, orijinal istemcinin IP adresini kaydeder

[Bağlantıyı kopyala]
Yayınlandı 3.11.2014 09:53:23 | | |

Bu modül, istemci isteği başlığındaki istemci IP adresi değerini değiştirmemize olanak tanır (örneğin, X-Real-IP veya X-Forwarded-For).

    Bu özellik, Nginx bazı Katman 7 yük dengeleme proxy'lerinin arkasında çalışıyorsa çok faydalıdır, çünkü istemci isteğinin yerel IP'si (yani istemcinin istek adresi) Katman 7 proxy'sinden geçerken istemci IP adresi başlığına eklenir ve böylece arka uç Nginx istemcinin IP adresi değerini elde edebilir. Modül varsayılan olarak kurulmuyor, bu yüzden modülü kullanmak istiyorsanız, kurulumu derlerken --with-http_realip_module seçeneğini eklemeniz gerekir.

    Bu modülün kullanılmasının nedeni, arka plan sunucusunun orijinal istemcinin IP adresini kaydetmesine izin vermesidir.

Yapılandırma örneği
set_real_ip_from 192.168.1.0/24;
set_real_ip_from 192.168.2.1;
real_ip_header X-Real-IP;


Parmaklar    Düzen

   Modül sadece iki talimat verir.

Talimat adı: set_real_ip_from

İş Fonksiyonu: Bu komutla güvenilir bir adres belirtmek, tam bir IP adresiyle değiştirilir. Güvenilir Unix soketleri de 0.8.22 sürümünden itibaren kullanılabilir. Buradaki IP kümesi, ön uçu ifade ederNginxVernikveyaKalamarofIPAdres.

Sözdizimi: set_real_ip_from [adres| CIDR|" unix:"]

Varsayılan değer: yok

Kullanım ortamı: http, sunucu, konum

Talimat Adı: real_ip_header

Fonksiyon: Bu komut, IP adresinin yerine hangi başlığın kullanılacağını ayarlamak için kullanılır. Eğer X-Forwarded-For kullanılırsa, modül ön uç proxy'nin IP adresini X-Forwarded-For başlığındaki son IP adresiyle değiştirir.

Sözdizimi: real_ip_header [X-Real-IP| X-Yönlendirildi]

Varsayılan Değer: real_ip_header X-Real-IP

Kullanım ortamı: http, sunucu, konum

Kullanım Durumları   

    Aşağıdaki örnekte, ortamımız şöyle: iki Nginx sunucusu var, biri ön uç, diğeri arka uç, ön uç Nginx proxy olarak kullanılır ve arka uç Nginx sayfa erişimi sağlamak için kullanılır ve ayrıca aşağıdaki IP adresine sahip bir istemci vardır:

  

    Ön uç Nginx: 192.168.7.10

    Arka uç Nginx: 192.168.1.15

    İstemci sunucusu: 218.239.201.36

    Ön taraftaki Nginx konfigürasyonu şöyle görünüyor:

sunucu {
  80 dinle;
  server_name www.xx.com;

Konum / {
    kök html;
    index.html index.htm indeks;
charset UTF-8;
  }

konum /865 {
    proxy_pass http://192.168.3.139:80/;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Sunucu $host;
    proxy_redirect ayrıl;
  }

……
}

Arka uç için Nginx yapılandırması şu şekildedir:

sunucu {
  80 dinle;
  server_name yerel sunucu;

  Konum / {
    root /var/www/html;
    index.html index.htm indeks;
  }

Teste erişim

    http://www.xx.com/865 erişirsek, sorun olmaz, normal bir erişim olabilir, erişim günlüğü şöyledir:

    Ön yüz Nginx'ten kayıtlar:

218.239.201.36 - - [30/Ağg/2011:16:09:56 +0800] "GET /865/ HTTP/1.1" 200 151 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12 GTB7.1"

Backend Nginx'ten kayıtlar:

192.168.7.10 - - [30/Ağustos/2011:16:09:56 +0800] "GET // HTTP/1.0" 200 151 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12 GTB7.1"

Arka uç Nginx loglarının orijinal istemcinin IP adresini değil, ön uç Nginx'in IP adresini kaydettiğini görüyoruz.

    Arka plan Nginx sunucusunun yapılandırmasını şu şekilde değiştirirseniz:

sunucu {
  80 dinle;
  server_name yerel sunucu;
  set_real_ip_from 192.168.3.0/24;
set_real_ip_from 100.100.0.0/16;
  real_ip_header X-Real-IP;

  Konum / {
    kök html;
    index.html index.htm indeks;
  }

    ……
}

Sonra erişim testini tekrar yapıyoruz:

    Ön yüz Nginx'ten kayıtlar:

218.239.201.36 - - [30/Ağg/2011:16:10:28 +0800 "GET /865/ HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12 GTB7.1"

     Backend Nginx'ten kayıtlar:

218.239.201.36 - - [30/Ağustos/2011:16:10:28 +0800] "GET // HTTP/1.0" 304 0 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12 GTB7.1"

Bu sefer arka planın istemcinin IP adresini kaydettiği görülebilir.







Önceki:nginx proxy modu, istemcinin gerçek IP adresini elde edin
Önümüzdeki:Discuz! X3.1 Tüm X3 sürümleri ek indirme iznini kredi olmadan atlıyor Sınırsız indirme açığı
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