2010-03-11 13 views
5

जब मैं अपने रिमोट सर्वर पर अपने रेल 2.2 ऐप पर जाता हूं तो मुझे अपने REMOTE_ADDR के रूप में निम्न मान प्राप्त होता है।request.env क्यों है ['REMOTE_ADDR'] दो आईपी लौट रहा है?

request.env [ 'REMOTE_ADDR']: "75.184.124.93, 10.194.95.79"

मुझे क्या स्टम्प्ड है यही वजह है कि वहाँ दो आईपी कर रहे हैं। वर्तमान में लीज्ड सार्वजनिक आईपी की एक त्वरित जांच पुष्टि करता है कि मेरा आईपी 75.184.124.93 है।

तो जहां 10.194.95.79 से आ रही है?

वहाँ कैसे दूरदराज के पते एकत्र और HTTP हेडर में रिपोर्ट कर रहे हैं के बारे में कुछ है कि मैं याद कर रहा हूँ कल्पना है? क्या यह उम्मीद है, सामान्य व्यवहार?

+0

10.194.95.79 एक निजी नेटवर्क आईपी पता है। –

+0

यह request.env ['REMOTE_ADDR'] में 75.184.124.93 में क्यों शामिल हो रहा है? –

+0

ऐसा इसलिए हो सकता है क्योंकि HTTP अनुरोध शीर्षलेख को मेरे अनुप्रयोग स्तर के सामने बैठे रिवर्स प्रॉक्सी द्वारा संशोधित किया गया है? –

उत्तर

5

यह निश्चित रूप से एक रिवर्स प्रॉक्सी के कारण है।

रिवर्स प्रॉक्सी (मैं अक्सर बिगिप्स और अपाचे mod_proxy मोड का उपयोग करता हूं) आमतौर पर सभी हस्तक्षेप वाले आईपी को सूची में जोड़ता है ताकि आप अपने कोड में सही चुन सकें।

उदाहरण के लिए, यदि आप सार्वजनिक एक अपने webstats आवेदन करने के लिए लॉग इन करने को खोजने के लिए चाहते हो सकता है, इसलिए वहाँ यह REMOTE_ADDR में सही है। लेकिन आपके पास आंतरिक आईपी भी है, इसलिए आप जानते हैं कि यह किस लोडबैंसर से आया है, जो किसी आंतरिक प्रकार के आंतरिक नेटवर्क ट्रैकिंग आदि के लिए आंतरिक सर्वर है,

संबंधित मुद्दे