|
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ğiset_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 ederNginx、VernikveyaKalamarofIPAdres. 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.
|