2016-03-28 14 views
8

Nginx IP'leri sınırlamak için allow ve deny sözdizimini desteklemektedir, örn. allow 192.168.1.1;. Ancak trafik ters bir proxy'den geçerse, IP proxy'nin IP'sine başvurur. Öyleyse, belirli bir kök IP'yi beyaz listeye almak ve diğer tüm gelen istekleri reddetmek nasıl yapılandırılabilir?Nginx - Kökenin izin verilmesi IP

cevap

10

remote_addr proxy'ye başvurur, ancak proxy'yi istemci adresini X-Real-IP/X-Forwarded-For başlık alanları ile gönderecek şekilde yapılandırabilirsiniz.

ngx_http_realip modülüyle birlikte, remote_addr için gerçek istemci adresini kullanmak üzere gelen üstbilgiyi değiştirebilirsiniz. Bunun, izin ver/reddet sözdizimi ile beklendiği gibi çalışacağına inanıyorum.

Sadece açıklığa kavuşturmak - modülün etkinleştirilmesinin ve yapılandırılmasının ardından sözdiziminin aynı olması gerekir. IP'nizi ve proxy adreslerinizi aşağıdan değiştirin.

location/{ 
    allow <your ip>; 
    allow 127.0.0.1; 
    deny all; 
} 

Arka uç nginx realip yapılandırması: senin nginx proxy yapılandırması üzerinde

set_real_ip_from <your proxy>; 
real_ip_header X-Forwarded-For; 

:

proxy_set_header  X-Real-IP  $remote_addr; 
proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for; 

Birden varsa

Arka uç nginx/inkar izin ara vekiller dahil, real_ip_recursive ve beyaz liste ek adresleri h set_real_ip_from yönergesi.

+0

Teşekkürler - modülün yalnızca değişkenin nasıl alınacağını ancak nasıl beyaz listeye alınacağını göstermediğinden, yapının nasıl görüneceğini gösterebilir misiniz? – mahemoff

+0

Görüyorum ki, proxy IP'sini IP ile değiştirir. Teşekkürler. – mahemoff

+1

Evet. Bu karmaşa için üzgünüm. Orijinal gönderimi güncellendi. – ngraves