ट्रेस सेशन में एचटीटीपी 304 रिस्पॉन्स

यह Apigee Edge का दस्तावेज़ है.
Go to the Apigee X documentation.
info

समस्या का ब्यौरा

प्राइवेट क्लाउड के लिए Edge में, Edge के यूज़र इंटरफ़ेस (यूआई) में किसी एपीआई को ट्रेस करते समय, आपको ट्रेस विंडो के स्टेटस कॉलम में, एचटीटीपी 304 जवाब दिखता है:

गड़बड़ी के मैसेज

इसमें कोई गड़बड़ी का मैसेज नहीं है. एपीआई प्रॉक्सी कॉल से असल में, सफलता का जवाब मिलता है. जैसे, एचटीटीपी 200. हालांकि, Edge के यूज़र इंटरफ़ेस (यूआई) में मौजूद ट्रेस विंडो में, एचटीटीपी 304 जवाब दिखता है. साथ ही, इसमें कोई ट्रेस डेटा इकट्ठा नहीं किया जाता.

संभावित कारण

प्राइवेट क्लाउड के लिए Edge में, Edge का यूज़र इंटरफ़ेस (यूआई), निजी आईपी पते से ऐक्सेस की गई एपीआई प्रॉक्सी को ट्रेस करने की कोशिश कर रहा है.

Edge के यूज़र इंटरफ़ेस (यूआई) में मौजूद ट्रेस टूल, किसी भी यूआरएल पर एपीआई का अनुरोध भेज सकता है. डिप्लॉयमेंट के ऐसे मामले में जहां Edge का यूज़र इंटरफ़ेस (यूआई), अन्य इंटरनल सेवाओं के साथ को-होस्ट किया जाता है, वहां कोई नुकसान पहुंचाने वाला उपयोगकर्ता, ट्रेस टूल का दुरुपयोग करके, निजी आईपी पते (जैसे, localhost या 127.0.0.1) के ज़रिए सेवाओं के लिए अनुरोध कर सकता है.

आम तौर पर, प्रोडक्शन एनवायरमेंट में, डिफ़ॉल्ट सेटिंग को वैसे ही छोड़ दिया जाता है, ताकि उपयोगकर्ता निजी आईपी पते को ट्रेस न कर पाएं. उदाहरण के लिए, Edge के यूज़र इंटरफ़ेस (यूआई) का सार्वजनिक वर्शन इसी तरह डिप्लॉय किया जाता है.

हालांकि, इंटरनल डेवलपमेंट या टेस्टिंग एनवायरमेंट के लिए, इस डिफ़ॉल्ट सेटिंग को बदला जा सकता है, ताकि आपके एपीआई डेवलपर किसी भी आईपी पते को ट्रेस कर सकें. आम तौर पर, डेवलपमेंट/टेस्टिंग एनवायरमेंट, फ़ायरवॉल के पीछे होता है. इसलिए, इसे सार्वजनिक तौर पर ऐक्सेस नहीं किया जा सकता.

ध्यान दें: सबसे सही तरीका यह है कि डिफ़ॉल्ट सेटिंग को वैसे ही छोड़ दिया जाए, ताकि निजी आईपी पतों को ट्रेस न किया जा सके. भले ही, यह सेटिंग डेवलपमेंट/टेस्टिंग एनवायरमेंट में हो. हालांकि, अगर आपको इसे चालू करना पड़े, तो ऐसा किया जा सकता है.

वजह: निजी आईपी पते के ज़रिए, एपीआई प्रॉक्सी को ऐक्सेस करने की कोशिश करना

डिफ़ॉल्ट रूप से, प्राइवेट क्लाउड के लिए Edge का यूज़र इंटरफ़ेस (यूआई), उपयोगकर्ताओं को निजी आईपी पतों के ज़रिए किए गए एपीआई कॉल को ट्रेस करने से रोकता है. निजी आईपी पतों की सूची में ये शामिल हैं:

  • लूपबैक पता (127.0.0.1 या localhost)
  • साइट-लोकल पते (आईपीवी4 के लिए - 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16)
  • कोई भी लोकल पता (localhost पर रिज़ॉल्व होने वाला कोई भी पता)

उदाहरण के लिए, यहां दिए गए कर्ल कमांड से, 127.0.0.1 आईपी पते का इस्तेमाल करके, एपीआई प्रॉक्सी को कॉल किया जाता है. इसे निजी आईपी पता माना जाता है:

curl http://127.0.0.1:9001/myapiproxy

इस कॉल के लिए, ट्रेस विंडो में आपको एचटीटीपी 304 जवाब दिखता है. भले ही, कर्ल कमांड से सफलता का जवाब मिला हो.

रिज़ॉल्यूशन

प्राइवेट क्लाउड के लिए Edge के लिए, Edge के यूज़र इंटरफ़ेस (यूआई) को निजी आईपी पतों को ट्रेस करने की अनुमति देने के लिए, ui.properties में यह टोकन सेट करें:

conf_apigee-base_apigee.feature.enabletraceforinternaladdresses="true"

इस प्रॉपर्टी को सेट करने के लिए:

  1. किसी एडिटर में ui.properties फ़ाइल खोलें. अगर यह फ़ाइल मौजूद नहीं है, तो इसे बनाएं.
    vi /opt/apigee/customer/application/ui.properties
  2. इन प्रॉपर्टी को 'सही' पर सेट करें:
    conf_apigee-base_apigee.feature.enabletraceforinternaladdresses="true"
  3. ui.properties में किए गए बदलाव सेव करें.
  4. पक्का करें कि प्रॉपर्टी फ़ाइल का मालिकाना हक 'apigee' उपयोगकर्ता के पास हो:
    chown apigee:apigee /opt/apigee/customer/application/ui.properties
  5. Edge के यूज़र इंटरफ़ेस (यूआई) को रीस्टार्ट करें:
    /opt/apigee/apigee-service/bin/apigee-service edge-ui restart

अब Edge का यूज़र इंटरफ़ेस (यूआई), ट्रेस टूल में निजी आईपी पतों को ऐक्सेस कर सकता है.

बाद में, यूज़र इंटरफ़ेस (यूआई) को निजी आईपी पतों के ज़रिए किए गए अनुरोधों को ट्रेस करने से रोकने के लिए, ui.properties में बदलाव करें, ताकि प्रॉपर्टी को false पर सेट किया जा सके. इसके बाद, Edge के यूज़र इंटरफ़ेस (यूआई) को रीस्टार्ट करें.

ज़्यादा जानकारी के लिए, Edge के यूज़र इंटरफ़ेस (यूआई) को लोकल आईपी पतों को ऐक्सेस करने की अनुमति देना लेख पढ़ें.