মেসেজ প্রসেসরে 405 প্রপার্টির জন্য 'এড়িয়ে যাওয়ার অনুমতি' হেডার কনফিগার করা

আপনি Apigee Edge ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশন দেখুন।
তথ্য

ক্লায়েন্ট-সার্ভার কমিউনিকেশনে, ক্লায়েন্টের দেওয়া HTTP অনুরোধ পদ্ধতি সার্ভারের জানা থাকলে কিন্তু টার্গেট রিসোর্সে কাজ না করলে, সার্ভার HTTP স্ট্যাটাস কোড 405 Method Not Allowed দিয়ে উত্তর দেয়। একইভাবে, Apigee Edge-এ, ব্যাকএন্ড সার্ভার HTTP স্ট্যাটাস কোড 405 Method Not Allowed.

Apigee Edge আশা করে যে ব্যাকএন্ড সার্ভার Allow হেডারে অনুমোদিত পদ্ধতির তালিকা সহ 405 Method Not Allowed উত্তর পাঠাবে স্পেসিফিকেশন অনুযায়ী RFC 7231, বিভাগ 6.5.5: 405 মেথড অনুমোদিত নয়।

Allow হেডারটি নিম্নলিখিত ফর্ম্যাটে পাঠাতে হবে:

Allow: HTTP_METHODS

যেমন, আপনার ব্যাকএন্ড সার্ভার GET, POST এবং HEAD পদ্ধতি অনুমোদন করলে, আপনাকে নিশ্চিত করতে হবে যে Allow হেডারে সেগুলি নিম্নলিখিতভাবে আছে:

Allow: GET, POST, HEAD

ব্যাকএন্ড সার্ভার HTTP স্ট্যাটাস কোডের সাথে Allow হেডার না পাঠালে 405 Method Not Allowed, Apigee ক্লায়েন্ট অ্যাপ্লিকেশনকে 502 Bad Gateway HTTP স্ট্যাটাস কোড ও protocol.http.Response405WithoutAllowHeader এরর কোড পাঠায়। এই সমস্যার সমাধান করার জন্য সাজেস্ট করা সমাধান হল স্পেসিফিকেশন মেনে চলার জন্য ব্যাকএন্ড সার্ভার ঠিক করা RFC 7231, বিভাগ 6.5.5: 405 Method Not Allowed অথবা ফল্ট হ্যান্ডলিং ব্যবহার করে HTTP স্ট্যাটাস কোড 405 Method Not Allowed সহ উত্তর দেওয়া Allow হেডার, যেমনটি সমস্যা সমাধান সংক্রান্ত প্লেবুকে ব্যাখ্যা করা হয়েছে 502 Bad Gateway - Response 405 without Allow header।

তবে, কিছু ব্যতিক্রমী ক্ষেত্রে, আপনার ব্যাকএন্ড ঠিক করা বা এই সমস্যার সমাধান করার জন্য আপনার API প্রক্সি অবিলম্বে পরিবর্তন করা সম্ভব নাও হতে পারে।

এই ধরনের ক্ষেত্রে, আপনি সাময়িকভাবে মেসেজ প্রসেসর লেভেলে 405 প্রপার্টির HTTP.ignore.allow_header.for.405 জন্য 'এড়িয়ে যাওয়ার অনুমতি' হেডার সেট করতে পারেন। এই প্রপার্টি true হিসেবে সেট করলে, Apigee ক্লায়েন্ট অ্যাপ্লিকেশনকে 502 Bad Gateway রেসপন্স ফেরত পাঠাতে পারে না, এমনকি যদি ব্যাকএন্ড সার্ভার Allow হেডার ছাড়া HTTP স্ট্যাটাস কোড 405 Method Not Allowed পাঠায়।

আপনি যখন Allow হেডার সহ HTTP স্ট্যাটাস কোড 405 Method Not Allowed পাঠানোর জন্য আপনার ব্যাকএন্ড সার্ভার ঠিক করতে পারবেন, তখন আপনি প্রপার্টি HTTP.ignore.allow_header.for.405-কে এর ডিফল্ট ভ্যালু false-এ ফিরিয়ে আনতে পারবেন।

শুরু করার আগে

এই ডকুমেন্টে উল্লেখ করা ধাপগুলি ব্যবহার করার আগে, নিম্নলিখিত বিষয়গুলি আপনি বুঝেছেন কিনা তা নিশ্চিত করুন:

মেসেজ প্রসেসরে 405 প্রপার্টির জন্য ignore allow header-কে true হিসেবে কনফিগার করা

Apigee Edge-এ, HTTP.ignore.allow_header.for.405 প্রপার্টি ডিফল্ট হিসেবে false-এ সেট করা থাকে। এর ফলে, ব্যাকএন্ড সার্ভার Allow হেডার ছাড়া HTTP স্ট্যাটাস কোড 405 Method Not Allowed পাঠালে, Apigee Edge ক্লায়েন্ট অ্যাপ্লিকেশনকে protocol.http.Response405WithoutAllowHeader এরর কোড সহ 502 Bad Gateway রিটার্ন করতে পারে। আপনি যদি চান যে Apigee Edge ক্লায়েন্ট অ্যাপ্লিকেশনকে 502 Bad Gateway না পাঠাক, তাহলে আপনাকে HTTP.ignore.allow_header.for.405 প্রপার্টির ভ্যালু true-এ সেট করতে হবে মেসেজ প্রসেসর।

এই বিভাগে, টোকেন ব্যবহার করে HTTP.ignore.allow_header.for.405 থেকে true প্রপার্টি Message Processors-এ কীভাবে কনফিগার করতে হয় তা ব্যাখ্যা করা হয়েছে। টোকেনটি Edge কীভাবে কনফিগার করতে হয়-এ বর্ণিত সিনট্যাক্স অনুযায়ী ব্যবহার করতে হবে।

  1. Message Processor মেশিনে, এডিটরে নিম্নলিখিত ফাইলটি খুলুন। এটি আগে থেকে না থাকলে তৈরি করুন।

    /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. আপনার কাছে একাধিক মেসেজ প্রসেসর থাকলে, সব মেসেজ প্রসেসরের ক্ষেত্রে উপরের ধাপগুলি রিপিট করুন।

মেসেজ প্রসেসরে ৪০৫ প্রপার্টির জন্য 'উপেক্ষা করার অনুমতি' হেডার যাচাই করার বিকল্প 'সত্য' হিসেবে সেট করা আছে

এই বিভাগে কীভাবে যাচাই করতে হয় যে মেসেজ প্রসেসরে HTTP.ignore.allow_header.for.405 প্রপার্টিটি সফলভাবে true আপডেট করা হয়েছে তা ব্যাখ্যা করা হয়েছে।

আপনি মেসেজ প্রসেসরে প্রপার্টির ভ্যালু আপডেট করার জন্য টোকেন conf_http_HTTP.ignore.allow_header.for.405 ব্যবহার করলেও প্রকৃত প্রপার্টি HTTP.ignore.allow_header.for.405, true হিসেবে সেট করা হয়েছে কিনা তা আপনাকে যাচাই করতে হবে।

  1. Message Processor মেশিনে, প্রপার্টিটি HTTP.ignore.allow_header.for.405 ডিরেক্টরিতে /opt/apigee/edge-message-processor/conf খুঁজে দেখুন এবং এটি নিচে দেখানো 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 প্রপার্টির জন্য উপেক্ষা করার অনুমতি হেডারকে true হিসেবে কনফিগার করার পদ্ধতি সঠিকভাবে অনুসরণ করেছেন কিনা তা যাচাই করুন। আপনি কোনও ধাপ মিস করে থাকলে, সব ধাপ আবার সঠিকভাবে রিপিট করুন।
  4. আপনি এখনও প্রপার্টি পরিবর্তন করতে না পারলে HTTP.ignore.allow_header.for.405, Apigee Edge সহায়তা টিমের সাথে যোগাযোগ করুন।

মেসেজ প্রসেসরে 405 প্রপার্টির জন্য ignore allow header-কে false হিসেবে কনফিগার করা

এই বিভাগে, Message Processor-এ প্রপার্টি 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. আপনার কাছে একাধিক মেসেজ প্রসেসর থাকলে, সব মেসেজ প্রসেসরের ক্ষেত্রে উপরের ধাপগুলি রিপিট করুন।

মেসেজ প্রসেসরে ৪০৫ প্রপার্টির জন্য 'উপেক্ষা করার অনুমতি' হেডার যাচাই করার বিকল্প 'ফলস' হিসেবে সেট করা আছে

এই বিভাগে কীভাবে যাচাই করতে হয় যে মেসেজ প্রসেসরে HTTP.ignore.allow_header.for.405 প্রপার্টিটি সফলভাবে false আপডেট করা হয়েছে তা ব্যাখ্যা করা হয়েছে।

আপনি Message Processor-এ ভ্যালু আপডেট করার জন্য token conf_http_HTTP.ignore.allow_header.for.405 ব্যবহার করলেও, আসল প্রপার্টি HTTP.ignore.allow_header.for.405 false-এ সেট করা হয়েছে কিনা তা আপনাকে যাচাই করতে হবে।

  1. Message Processor মেশিনে, প্রপার্টিটি HTTP.ignore.allow_header.for.405 /opt/apigee/edge-message- processor/conf ডিরেক্টরিতে খুঁজে দেখুন এবং এটি false হিসেবে সেট করা আছে কিনা তা চেক করুন, যেমন নিচে দেখানো হয়েছে:
    grep -ri "HTTP.ignore.allow_header.for.405" /opt/apigee/edge-message-processor/conf
    
  2. মেসেজ প্রসেসরে প্রপার্টি সফলভাবে আপডেট করা হলে, উপরের কমান্ড প্রপার্টির ভ্যালু HTTP.ignore.allow_header.for.405 হিসেবে false http.properties ফাইলে দেখাবে, যেমন নিচে দেখানো হয়েছে:
    /opt/apigee/edge-message-processor/conf/http.properties:HTTP.ignore.allow_header.for.405=false
  3. আপনি যদি এখনও প্রপার্টির ভ্যালু HTTP.ignore.allow_header.for.405 হিসেবে true দেখতে পান, তাহলে মেসেজ প্রসেসরে 405 প্রপার্টির জন্য উপেক্ষা করার অনুমতি সংক্রান্ত হেডারকে false হিসেবে কনফিগার করা সম্পর্কিত সমস্ত ধাপ সঠিকভাবে অনুসরণ করেছেন কিনা তা যাচাই করুন। আপনি কোনও ধাপ মিস করে থাকলে, সঠিকভাবে আবার সব ধাপ রিপিট করুন।
  4. আপনি এখনও প্রপার্টি পরিবর্তন করতে না পারলে HTTP.ignore.allow_header.for.405, Apigee Edge সহায়তা টিমের সাথে যোগাযোগ করুন।