मैसेज प्रोसेसर में 405 प्रॉपर्टी के लिए, हेडर अनदेखा करने की अनुमति कॉन्फ़िगर करें

आपको Apigee Edge का दस्तावेज़ दिख रहा है.
Apigee X के दस्तावेज़ पर जाएं.
जानकारी

क्लाइंट-सर्वर के बीच होने वाले कम्यूनिकेशन में, अगर क्लाइंट की ओर से पेश किया गया एचटीटीपी अनुरोध का तरीका सर्वर को पता है, लेकिन टारगेट रिसॉर्स के साथ काम नहीं करता है, तो सर्वर, एचटीटीपी स्टेटस कोड 405 Method Not Allowed के साथ जवाब देता है. इसी तरह, Apigee Edge में बैकएंड सर्वर, एचटीटीपी स्टेटस कोड 405 Method Not Allowed. के साथ जवाब दे सकता है

Apigee Edge को उम्मीद है कि बैकएंड सर्वर, Allow हेडर में अनुमति वाली विधियों की सूची के साथ 405 Method Not Allowed जवाब भेजेगा. यह आरएफ़सी 7231, सेक्शन 6.5.5: 405 Method Not Allowed के निर्देशों के मुताबिक होना चाहिए.

Allow हेडर को इस फ़ॉर्मैट में भेजा जाना चाहिए:

Allow: HTTP_METHODS

उदाहरण के लिए, अगर आपका बैकएंड सर्वर GET, POST, और HEAD तरीकों का इस्तेमाल करने की अनुमति देता है, तो आपको यह पक्का करना होगा कि Allow हेडर में ये तरीके इस तरह शामिल हों:

Allow: GET, POST, HEAD

अगर बैकएंड सर्वर, एचटीटीपी स्टेटस कोड 405 Method Not Allowed, के साथ Allow हेडर नहीं भेजता है, तो Apigee, क्लाइंट ऐप्लिकेशन को एचटीटीपी स्टेटस कोड 502 Bad Gateway और गड़बड़ी कोड protocol.http.Response405WithoutAllowHeader दिखाता है. इस गड़बड़ी को ठीक करने के लिए, सुझाया गया तरीका यह है कि बैकएंड सर्वर को ठीक किया जाए, ताकि वह आरएफ़सी 7231, सेक्शन 6.5.5: 405 मेथड की अनुमति नहीं है के नियमों का पालन कर सके. इसके अलावा, गड़बड़ी ठीक करने की सुविधा का इस्तेमाल करके, एचटीटीपी स्टेटस कोड 405 Method Not Allowed के साथ जवाब दिया जा सकता है. इसमें Allow हेडर भी शामिल है. इसके बारे में, समस्या हल करने से जुड़ी प्लेबुक 502 बैड गेटवे - अनुमति वाले हेडर के बिना 405 रिस्पॉन्स में बताया गया है.

हालांकि, कुछ खास मामलों में, इस समस्या को तुरंत ठीक करने के लिए, बैकएंड को ठीक करना या एपीआई प्रॉक्सी में बदलाव करना संभव नहीं हो सकता.

ऐसे मामलों में, मैसेज प्रोसेसर लेवल पर 405 प्रॉपर्टी HTTP.ignore.allow_header.for.405 के लिए, ignore allow हेडर को कुछ समय के लिए सेट किया जा सकता है. इस प्रॉपर्टी को true पर सेट करने से, Apigee क्लाइंट ऐप्लिकेशन को 502 Bad Gateway रिस्पॉन्स नहीं भेजता. भले ही, बैकएंड सर्वर Allow हेडर के बिना एचटीटीपी स्टेटस कोड 405 Method Not Allowed भेजता हो.

जब आपको बैकएंड सर्वर को ठीक करने का तरीका पता चल जाए, ताकि वह Allow हेडर के साथ एचटीटीपी स्टेटस कोड 405 Method Not Allowed भेज सके, तब प्रॉपर्टी HTTP.ignore.allow_header.for.405 को उसकी डिफ़ॉल्ट वैल्यू false पर वापस सेट किया जा सकता है.

शुरू करने से पहले

इस दस्तावेज़ में दिए गए चरणों का इस्तेमाल करने से पहले, पक्का करें कि आपको इन विषयों के बारे में जानकारी हो:

मैसेज प्रोसेसर पर, 405 प्रॉपर्टी के लिए 'अनुमति दें' हेडर को अनदेखा करने की सुविधा को सही के तौर पर कॉन्फ़िगर करना

Apigee Edge में, HTTP.ignore.allow_header.for.405 प्रॉपर्टी को डिफ़ॉल्ट रूप से false पर सेट किया जाता है. इससे Apigee Edge, क्लाइंट ऐप्लिकेशन को 502 Bad Gateway दिखा पाता है. साथ ही, गड़बड़ी कोड protocol.http.Response405WithoutAllowHeader भी दिखा पाता है. ऐसा तब होता है, जब बैकएंड सर्वर, Allow हेडर के बिना एचटीटीपी स्टेटस कोड 405 Method Not Allowed भेजता है. अगर आपको Apigee Edge को क्लाइंट ऐप्लिकेशन को 502 Bad Gateway भेजने से रोकना है, तो आपको मैसेज प्रोसेसर पर HTTP.ignore.allow_header.for.405 प्रॉपर्टी की वैल्यू को true पर सेट करना होगा.

इस सेक्शन में, मैसेज प्रोसेसर पर HTTP.ignore.allow_header.for.405 प्रॉपर्टी को true के तौर पर कॉन्फ़िगर करने का तरीका बताया गया है. इसके लिए, Edge को कॉन्फ़िगर करने का तरीका में बताए गए सिंटैक्स के मुताबिक टोकन का इस्तेमाल करें.

  1. मैसेज प्रोसेसर मशीन पर, इस फ़ाइल को किसी एडिटर में खोलें. अगर यह पहले से मौजूद नहीं है, तो इसे बनाएं.

    /opt/apigee/customer/application/message-processor.properties

    उदाहरण के लिए, vi का इस्तेमाल करके फ़ाइल खोलने के लिए, यह डालें:

    vi /opt/apigee/customer/application/message-processor.properties
  2. प्रॉपर्टी फ़ाइल में, इस फ़ॉर्मैट में एक लाइन जोड़ें:
    conf_http_HTTP.ignore.allow_header.for.405=true
  3. बदलावों को सेव करें.
  4. पक्का करें कि प्रॉपर्टी फ़ाइल का मालिकाना हक apigee उपयोगकर्ता के पास हो. इसके बारे में यहां बताया गया है:
    chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
    
  5. नीचे दिए गए तरीके से, मैसेज प्रोसेसर को फिर से शुरू करें:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
    
  6. अगर आपके पास एक से ज़्यादा मैसेज प्रोसेसर हैं, तो ऊपर दिया गया तरीका सभी मैसेज प्रोसेसर पर दोहराएं.

मैसेज प्रोसेसर पर, 405 प्रॉपर्टी के लिए 'ignore allow' हेडर की पुष्टि करने की सुविधा चालू है

इस सेक्शन में बताया गया है कि मैसेज प्रोसेसर पर, प्रॉपर्टी को HTTP.ignore.allow_header.for.405 से true पर अपडेट किया गया है या नहीं, इसकी पुष्टि कैसे करें.

आपने मैसेज प्रोसेसर पर प्रॉपर्टी की वैल्यू अपडेट करने के लिए, टोकन conf_http_HTTP.ignore.allow_header.for.405 का इस्तेमाल किया है. हालांकि, आपको यह पुष्टि करनी होगी कि असल प्रॉपर्टी HTTP.ignore.allow_header.for.405 को true पर सेट किया गया है.

  1. मैसेज प्रोसेसर मशीन पर, /opt/apigee/edge-message-processor/conf डायरेक्ट्री में HTTP.ignore.allow_header.for.405 प्रॉपर्टी खोजें. इसके बाद, देखें कि इसे नीचे दिखाए गए तरीके से true पर सेट किया गया है या नहीं:
    grep -ri "HTTP.ignore.allow_header.for.405" /opt/apigee/edge-message-processor/conf
    
  2. अगर मैसेज प्रोसेसर पर प्रॉपर्टी को अपडेट कर दिया गया है, तो ऊपर दिए गए कमांड से http.properties फ़ाइल में प्रॉपर्टी HTTP.ignore.allow_header.for.405 की वैल्यू true के तौर पर दिखनी चाहिए. जैसा कि यहां दिखाया गया है:
    /opt/apigee/edge-message-processor/conf/http.properties:HTTP.ignore.allow_header.for.405=true
  3. अगर आपको अब भी प्रॉपर्टी HTTP.ignore.allow_header.for.405 की वैल्यू false के तौर पर दिखती है, तो पुष्टि करें कि आपने मैसेज प्रोसेसर में, 405 प्रॉपर्टी के लिए 'ignore allow' हेडर को सही तरीके से कॉन्फ़िगर किया है. इसके लिए, आपको बताए गए सभी चरणों का पालन करना होगा. अगर आपने कोई चरण छोड़ दिया है, तो सभी चरणों को सही तरीके से फिर से दोहराएं.
  4. अगर अब भी प्रॉपर्टी में बदलाव नहीं किया जा सकता HTTP.ignore.allow_header.for.405, तो Apigee Edge की सहायता टीम से संपर्क करें.

मैसेज प्रोसेसर पर, 405 प्रॉपर्टी के लिए 'अनुमति दें हेडर को अनदेखा करें' सेटिंग को 'गलत है' के तौर पर कॉन्फ़िगर करना

इस सेक्शन में, मैसेज प्रोसेसर पर प्रॉपर्टी HTTP.ignore.allow_header.for.405 को उसकी डिफ़ॉल्ट वैल्यू false पर कॉन्फ़िगर करने का तरीका बताया गया है. इसके लिए, Edge को कॉन्फ़िगर करने का तरीका में बताए गए सिंटैक्स के मुताबिक टोकन का इस्तेमाल करें.

  1. पुष्टि करें कि प्रॉपर्टी HTTP.ignore.allow_header.for.405 को बदलकर true कर दिया गया है. इसके लिए, /opt/apigee/edge-message-processor/conf डायरेक्ट्री में इस प्रॉपर्टी को खोजें. इसके बाद, इस कमांड का इस्तेमाल करके इसकी वैल्यू देखें:
    grep -ri "HTTP.ignore.allow_header.for.405" /opt/apigee/edge-message-processor/conf
    
  2. अगर Message Processor पर प्रॉपर्टी को true पर सेट किया गया है, तो ऊपर दिए गए कमांड से, प्रॉपर्टी HTTP.ignore.allow_header.for.405 की वैल्यू http.properties फ़ाइल में true के तौर पर दिखनी चाहिए. जैसा कि यहां दिखाया गया है:
    /opt/apigee/edge-message-processor/conf/http.properties:HTTP.ignore.allow_header.for.405=true
  3. अगर ऊपर दिए गए निर्देश से पता चलता है कि प्रॉपर्टी HTTP.ignore.allow_header.for.405 को false (डिफ़ॉल्ट वैल्यू) पर सेट किया गया है, तो आपको कुछ और करने की ज़रूरत नहीं है. इसका मतलब है कि, यहां दिया गया तरीका न अपनाएं.
  4. अगर प्रॉपर्टी HTTP.ignore.allow_header.for.405 को true पर सेट किया गया है, तो इसकी डिफ़ॉल्ट वैल्यू false पर वापस जाने के लिए, यह तरीका अपनाएं.
  5. Message Processor मशीन पर, इस फ़ाइल को किसी एडिटर में खोलें:

    /opt/apigee/customer/application/message-processor.properties

    उदाहरण के लिए, vi का इस्तेमाल करके फ़ाइल खोलने के लिए, यह डालें:

    vi /opt/apigee/customer/application/message-processor.properties
    
  6. प्रॉपर्टी फ़ाइल से यह लाइन हटाएं:
    conf_http_HTTP.ignore.allow_header.for.405=true
  7. बदलावों को सेव करें.
  8. पक्का करें कि प्रॉपर्टी फ़ाइल का मालिकाना हक apigee उपयोगकर्ता के पास हो. इसके बारे में यहां बताया गया है:
    chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
    
  9. नीचे दिए गए तरीके से, मैसेज प्रोसेसर को फिर से शुरू करें:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
    
  10. अगर आपके पास एक से ज़्यादा मैसेज प्रोसेसर हैं, तो ऊपर दिया गया तरीका सभी मैसेज प्रोसेसर पर दोहराएं.

Verifying ignore allow header for 405 property is set to false on Message Processors

इस सेक्शन में बताया गया है कि मैसेज प्रोसेसर पर, प्रॉपर्टी को HTTP.ignore.allow_header.for.405 से false पर अपडेट किया गया है या नहीं, इसकी पुष्टि कैसे करें.

Message Processor पर वैल्यू अपडेट करने के लिए, भले ही आपने conf_http_HTTP.ignore.allow_header.for.405 टोकन का इस्तेमाल किया हो, लेकिन आपको यह पुष्टि करनी होगी कि असल प्रॉपर्टी HTTP.ignore.allow_header.for.405 को false पर सेट किया गया है.

  1. मैसेज प्रोसेसर मशीन पर, /opt/apigee/edge-message- processor/conf डायरेक्ट्री में HTTP.ignore.allow_header.for.405 प्रॉपर्टी खोजें. इसके बाद, देखें कि इसे false पर सेट किया गया है या नहीं. जैसा कि यहां दिखाया गया है:
    grep -ri "HTTP.ignore.allow_header.for.405" /opt/apigee/edge-message-processor/conf
    
  2. अगर मैसेज प्रोसेसर पर प्रॉपर्टी को अपडेट कर दिया गया है, तो ऊपर दिए गए कमांड से http.properties फ़ाइल में प्रॉपर्टी HTTP.ignore.allow_header.for.405 की वैल्यू false के तौर पर दिखनी चाहिए. जैसा कि यहां दिखाया गया है:
    /opt/apigee/edge-message-processor/conf/http.properties:HTTP.ignore.allow_header.for.405=false
  3. अगर आपको अब भी प्रॉपर्टी HTTP.ignore.allow_header.for.405 की वैल्यू true के तौर पर दिखती है, तो पुष्टि करें कि आपने मैसेज प्रोसेसर पर, 405 प्रॉपर्टी के लिए 'अनुमति दें' हेडर को अनदेखा करने की सुविधा को गलत के तौर पर कॉन्फ़िगर करना में बताए गए सभी चरणों को सही तरीके से पूरा किया हो. अगर आपने कोई चरण छोड़ दिया है, तो सभी चरणों को फिर से सही तरीके से दोहराएं.
  4. अगर अब भी प्रॉपर्टी में बदलाव नहीं किया जा सकता HTTP.ignore.allow_header.for.405, तो Apigee Edge की सहायता टीम से संपर्क करें.