2016-03-28 9 views
8

की अनुमति देना Nginx allow और deny आईपी प्रतिबंधित करने के लिए वाक्यविन्यास का समर्थन करता है, उदा। allow 192.168.1.1;। लेकिन यदि यातायात एक रिवर्स प्रॉक्सी से गुज़रता है, तो आईपी प्रॉक्सी के आईपी का संदर्भ देगा। तो यह एक विशिष्ट मूल आईपी श्वेतसूची के लिए कैसे कॉन्फ़िगर किया जा सकता है और अन्य सभी आने वाले अनुरोधों से इंकार कर सकता है?Nginx - मूल आईपी

उत्तर

10

remote_addr प्रॉक्सी का संदर्भ देगा, लेकिन आप प्रॉक्सी को हेडर फ़ील्ड एक्स-रीयल-आईपी/एक्स-फॉरवर्ड-फॉर के साथ क्लाइंट एड्रेस भेजने के लिए कॉन्फ़िगर कर सकते हैं।

ngx_http_realip मॉड्यूल के साथ संयुक्त, आप आने वाले शीर्षलेख को दूरस्थ_एडआरआर के लिए वास्तविक ग्राहक पते का उपयोग करने के लिए संशोधित कर सकते हैं। मेरा मानना ​​है कि यह सिंटैक्स को अनुमति/अस्वीकार करने के साथ अपेक्षित काम करेगा।

बस स्पष्ट करने के लिए - मॉड्यूल को सक्षम और कॉन्फ़िगर करने के बाद वाक्यविन्यास को अनुमति/अस्वीकार करना समान होना चाहिए। नीचे अपने आईपी और अपने प्रॉक्सी पते का चयन करें।

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

वापस अंत nginx realip विन्यास:

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

अपने nginx प्रॉक्सी कॉन्फ़िगरेशन पर:

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

अगर आप एक से अधिक है

वापस अंत nginx/इनकार अनुमति देते हैं मध्यवर्ती प्रॉक्सी शामिल हैं, आपको real_ip_recursive और whitelist अतिरिक्त पते बुद्धि सक्षम करने की आवश्यकता होगी एच set_real_ip_from निर्देश।

+0

धन्यवाद - क्या आप दिखा सकते हैं कि कॉन्फ़िगर इस पर कैसे दिखेगा, क्योंकि मॉड्यूल पेज केवल चर दिखाता है कि कैसे श्वेतसूची को दिखाया जाए। – mahemoff

+0

मुझे लगता है, यह मूल आईपी के साथ प्रॉक्सी आईपी को बदल देता है। धन्यवाद। – mahemoff

+1

हां। एक टिप्पणी के उस गड़बड़ के लिए खेद है। मेरी मूल पोस्ट अपडेट की गई। – ngraves