ডুপ্লিকেট হেডারের অনুমতি দিতে বার্তা প্রসেসর কনফিগার করা হচ্ছে

আপনি Apigee Edge-এর ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশন
.info- তে যান।

HTTP স্পেসিফিকেশন RFC 7230-এর ৩.২.২: ফিল্ড অর্ডার ধারা অনুসারে, Apigee Edge আশা করে যে ক্লায়েন্টের HTTP অনুরোধ বা ব্যাকএন্ড সার্ভারের HTTP প্রতিক্রিয়াতে একই বা ভিন্ন মান সহ একই হেডার একাধিকবার পাঠানো হবে না, যদি না নির্দিষ্ট হেডারটির কোনো ব্যতিক্রম থাকে এবং সেটির ডুপ্লিকেট থাকার অনুমতি দেওয়া হয়।

ডিফল্টরূপে, Apigee Edge বেশিরভাগ HTTP হেডারে ডুপ্লিকেট এবং একাধিক ভ্যালু পাস করার অনুমতি দেয়। তবে, এটি কিছু নির্দিষ্ট হেডারের অনুমতি দেয় না, যেগুলো ‘যেসব হেডারে ডুপ্লিকেট এবং একাধিক ভ্যালু থাকার অনুমতি নেই’ তালিকায় অন্তর্ভুক্ত। অতএব:

  • Apigee Edge-এ কোনো নির্দিষ্ট হেডার একাধিকবার অথবা এমন একাধিক ভ্যালু ব্যবহার করে ক্লায়েন্ট যদি HTTP রিকোয়েস্ট পাঠায়, যেগুলোর ডুপ্লিকেট বা একাধিক ভ্যালু থাকা অনুমোদিত নয়, তাহলে আপনি protocol.http.DuplicateHeader এরর কোড সহ 400 Bad Request পাবেন।
  • একইভাবে, যদি ব্যাকএন্ড সার্ভার কোনো নির্দিষ্ট হেডার একাধিকবার অথবা এমন HTTP হেডারের একাধিক মান সহ HTTP প্রতিক্রিয়া পাঠায়, যেগুলোর ডুপ্লিকেট বা একাধিক মান Apigee Edge-এ অনুমোদিত নয়, তাহলে আপনি protocol.http.DuplicateHeader এরর কোড সহ 502 Bad Gateway ত্রুটি পাবেন।

এই ত্রুটিগুলি সমাধানের জন্য প্রস্তাবিত উপায় হলো, ক্লায়েন্ট অ্যাপ্লিকেশন এবং ব্যাকএন্ড সার্ভারকে ডুপ্লিকেট হেডার পাঠানো থেকে বিরত রাখা এবং নিম্নলিখিত ট্রাবলশুটিং প্লেবুকগুলিতে ব্যাখ্যা করা অনুযায়ী RFC 7230 স্পেসিফিকেশনের ৩.২.২: ফিল্ড অর্ডার সেকশনটি মেনে চলা।

তবে, কিছু ক্ষেত্রে আপনি কিছু HTTP হেডারের জন্য ডুপ্লিকেট এবং একাধিক মান অন্তর্ভুক্ত করতে একটি ব্যতিক্রম যোগ করতে চাইতে পারেন। এই ধরনের পরিস্থিতিতে, আপনি মেসেজ প্রসেসর লেভেলে HTTPHeader. HEADER_NAME প্রপার্টি সেট করার মাধ্যমে একটি নির্দিষ্ট HTTP হেডারের জন্য ডুপ্লিকেট হেডার এবং একাধিক মানের অনুমতি দিতে পারেন।

এই ডকুমেন্টটি এই প্রপার্টি সম্পর্কে তথ্য প্রদান করে, উপরে উল্লিখিত ত্রুটিগুলি এড়াতে কীভাবে এই প্রপার্টিটি সক্রিয় করতে হয় তা ব্যাখ্যা করে এবং এ সংক্রান্ত সেরা অনুশীলনগুলি তুলে ধরে।

ডুপ্লিকেট এবং একাধিক মান অনুমোদনের জন্য HTTP হেডার প্রোপার্টি

HTTP হেডারে ডুপ্লিকেট এবং একাধিক ভ্যালু অনুমোদনের আচরণ নিয়ন্ত্রণ করার জন্য Apigee Edge নিম্নলিখিত দুটি প্রপার্টি প্রদান করে। উল্লেখ্য যে, "How to configure Edge" অংশে ব্যাখ্যা করা টোকেন সিনট্যাক্স ব্যবহার করে এগুলি শুধুমাত্র মেসেজ প্রসেসরগুলিতে কনফিগার করা যায়।

সম্পত্তির নাম বর্ণনা অনুমোদিত মান
HTTPHeader. ANY

এই প্রপার্টিটি নির্দেশ করে যে, ক্লায়েন্ট কর্তৃক করা HTTP অনুরোধের অংশ হিসেবে অথবা ব্যাকএন্ড সার্ভার থেকে Apigee Edge-এ পাঠানো HTTP প্রতিক্রিয়ার অংশ হিসেবে প্রেরিত কাস্টম হেডার সহ সমস্ত HTTP হেডারের জন্য ডুপ্লিকেট বা একাধিক ভ্যালু অনুমোদিত কিনা।

ডিফল্ট মান:

multiValued, allowDuplicates,

  1. blank : HTTP হেডারের জন্য সদৃশ এবং একাধিক মান অনুমোদিত নয়।
  2. multiValued : মাল্টি-ভ্যালুড হেডারকে একাধিক হেডারে বিভক্ত করুন। HTTP হেডারের জন্য একাধিক মান অনুমোদিত, কিন্তু ডুপ্লিকেট অনুমোদিত নয়। multiValued মানটি সক্রিয় করা হলে, test-header=a,b রূপান্তরিত হয়ে test-header=a এবং test-header=b.
  3. allowDuplicates : একই নামের একাধিক (অনুরূপ) HTTP হেডার ব্যবহারের অনুমতি দেয়।
  4. multiValued, allowDuplicates : HTTP হেডারের জন্য একাধিক মান এবং ডুপ্লিকেট উভয়ই অনুমোদিত।

HTTPHeader. HEADER_NAME

এই প্রপার্টিটি HTTPHeader. ANY

উপরেরটির মতোই।

যে হেডারগুলিতে ডুপ্লিকেট এবং একাধিক মান থাকতে পারে না

পূর্বে যেমন ব্যাখ্যা করা হয়েছে, Apigee Edge ডিফল্টরূপে বেশিরভাগ HTTP হেডারের জন্য ডুপ্লিকেট এবং একাধিক মান অনুমোদন করে। এর কারণ হলো HTTPHeader. ANY প্রপার্টিটি multiValued, allowDuplicates.

কনফিগারেশন মুছে ফেলা হয়েছে

কিছু নির্দিষ্ট হেডারের ক্ষেত্রে, নিম্নলিখিত পদ্ধতিগুলোর কোনো একটি ব্যবহার করে ডিফল্ট কনফিগারেশন ওভাররাইট করা হয়:

  • HTTPHeader. HEADER_NAME =multiValued, allowDuplicates

    এই কনফিগারেশনটি ডিফল্ট আচরণ পরিবর্তন করে না । অর্থাৎ, নির্দিষ্ট হেডারটিতে ডুপ্লিকেট এবং একাধিক মান থাকতে পারে।

    .
  • HTTPHeader. HEADER_NAME =

    এই কনফিগারেশনটি ডিফল্ট আচরণ পরিবর্তন করে । অর্থাৎ, নির্দিষ্ট হেডারটিতে ডুপ্লিকেট এবং একাধিক ভ্যালু থাকার অনুমতি নেই

এমন হেডার নির্ধারণ করা যেখানে ডুপ্লিকেট এবং একাধিক মান থাকতে পারবে না

এই বিভাগে নিম্নলিখিত বিষয়গুলো শনাক্ত করার পদ্ধতি বর্ণনা করা হয়েছে:

  • আপনার Apigee Edge Private Cloud সেটআপে যে নির্দিষ্ট হেডারগুলিতে ডুপ্লিকেট এবং একাধিক ভ্যালু থাকার অনুমতি নেই , এবং
  • পূর্ব-বিদ্যমান কনফিগারেশন সহ নির্দিষ্ট হেডারগুলি
  1. মেসেজ প্রসেসর মেশিনে, নিচে দেখানো অনুযায়ী /opt/apigee/edge-message-processor/conf ডিরেক্টরিতে HTTPHeader. প্রপার্টিটি খুঁজুন:

    grep -ri "HTTPHeader." /opt/apigee/edge-message-processor/conf
    

    নমুনা আউটপুট:

    # grep -ri "HTTPHeader" /opt/apigee/edge-message-processor/conf
    /opt/apigee/edge-message-processor/conf/http.properties:HTTPHeader.ANY=allowDuplicates, multiValued
    /opt/apigee/edge-message-processor/conf/http.properties:HTTPHeader.Connection=allowDuplicates, multiValued
    … <snipped>
    /opt/apigee/edge-message-processor/conf/http.properties:HTTPHeader.Host=
    /opt/apigee/edge-message-processor/conf/http.properties:HTTPHeader.Expires=
    /opt/apigee/edge-message-processor/conf/http.properties:HTTPHeader.Date=allowDuplicates
    …
    <snipped>
  2. 'কনফিগারেশন ওভাররাইট করা হয়েছে ' বিভাগে যেমন ব্যাখ্যা করা হয়েছে, উপরের নমুনা আউটপুটে নিম্নলিখিত তথ্যগুলো লক্ষ্য করুন:
    1. HTTP হেডার Connection ওভাররাইট করা হয়, কিন্তু এতে ডুপ্লিকেট এবং একাধিক ভ্যালু থাকতে পারে।
    2. HTTP হেডার Host এবং Expires ওভাররাইট করা হয় এবং এগুলোর ডুপ্লিকেট ও একাধিক ভ্যালু থাকার অনুমতি নেই।
    3. HTTP হেডার Date ওভাররাইট করা হয় এবং এতে ডুপ্লিকেট থাকতে পারে, কিন্তু একাধিক ভ্যালু থাকতে পারে না।
    4. এখানে প্রদর্শিত সমস্ত হেডার (উপরের নমুনায় Connection , Host , Expires , এবং Date ) এই ডকুমেন্টে পূর্ব-বিদ্যমান কনফিগারেশন সহ হেডার হিসাবে উল্লেখ করা হয়েছে।

এপিজী প্রান্তের আচরণ

নিম্নলিখিত সারণীতে Apigee Edge-এর আচরণ বর্ণনা করা হয়েছে, যখন হেডারগুলি ডুপ্লিকেট হিসাবে এবং একাধিক মান সহ পাঠানো হয়। এটি মেসেজ প্রসেসরগুলিতে HTTPHeader প্রোপার্টিগুলি কীভাবে কনফিগার করা হয়েছে তার উপর নির্ভর করে, যেখানে test-header নামক একটি HTTPHeader এর উদাহরণ দেওয়া হয়েছে।

অনুরোধ conf/http.properties+HTTPHeader.test-header= এর মানের উপর ভিত্তি করে বহির্গামী হেডারসমূহ।
<খালি> ডুপ্লিকেটের অনুমতি দিন বহুমানী ডুপ্লিকেটের অনুমতি দিন, বহু-মান (ডিফল্ট)
test‑header=a,b test‑header=a,b test‑header=a,b

protocol.http.
DuplicateHeader

অভ্যন্তরীণভাবে আমরা test-header=a,b কে বিভক্ত করেছি:

  • test-header=a , এবং
  • test-header=b ,

এবং তারপরে DuplicateHeader ত্রুটিটি প্রদর্শিত হয়।

test‑header=a,b

অভ্যন্তরীণভাবে আমরা test-header=a,b কে বিভক্ত করেছি:

  • test-header=a , এবং
  • test-header=b ,

কিন্তু তারপর মূল ফর্মটি লক্ষ্যে পাঠানো হয়।

test‑header=a
test‑header=b
protocol.http.
DuplicateHeader
test‑header=a
test‑header=b
protocol.http.
DuplicateHeader
test‑header=a
test‑header=b

শুরু করার আগে

এই নথিতে বর্ণিত ধাপগুলো ব্যবহার করার আগে, "কিভাবে Edge কনফিগার করবেন" অংশে বর্ণিত প্রাইভেট ক্লাউডে Edge-এর জন্য প্রোপার্টি কনফিগার করার পদ্ধতিটি আপনি ভালোভাবে বুঝেছেন কিনা, তা নিশ্চিত হয়ে নিন।

হেডারগুলির জন্য allowDuplicates এবং একাধিক মান কনফিগার করা

ডুপ্লিকেট এবং একাধিক ভ্যালু অনুমোদনের জন্য HTTP হেডার প্রপার্টিতে যেমন ব্যাখ্যা করা হয়েছে, HTTPHeader. ANY = allowDuplicates, multiValued প্রপার্টির ভ্যালুটি বোঝায় যে Apigee Edge-এ সমস্ত হেডারে ডুপ্লিকেট এবং একাধিক ভ্যালু থাকতে পারে। তবে, কিছু নির্দিষ্ট হেডার আছে যাদের ভ্যালু HTTPHeader. HEADER_NAME প্রপার্টি ব্যবহার করে স্পষ্টভাবে ওভাররাইট করা হয়, যাতে ডুপ্লিকেট হেডার বা একাধিক ভ্যালুর অনুমতি না দেওয়া হয়।

এই বিভাগে ব্যাখ্যা করা হয়েছে কিভাবে "How to configure Edge" -এ বর্ণিত সিনট্যাক্স অনুযায়ী সংশ্লিষ্ট টোকেন ব্যবহার করে মেসেজ প্রসেসরগুলিতে যেকোনো ধরনের HTTP হেডারের জন্য ডুপ্লিকেট এবং একাধিক মান অনুমোদনের জন্য HTTPHeader. HEADER_NAME

এই অংশে, আমরা Expires (এবং myheader )-কে একটি উদাহরণ হেডার হিসেবে ব্যবহার করব, যেখানে আমরা নিচে ব্যাখ্যা অনুযায়ী ডুপ্লিকেট এবং একাধিক ভ্যালুর অনুমতি দিতে চাই:

  1. নিম্নলিখিত কমান্ডটি ব্যবহার করে HTTPHeader HEADER_NAME প্রপার্টির বর্তমান মান নির্ধারণ করুন এবং নিশ্চিত করুন যে এটিতে ডুপ্লিকেট ও একাধিক মান অনুমোদনের জন্য আগে থেকেই সক্রিয় করা নেই:
    grep -ri "HTTPHeader.HEADER_NAME" /opt/apigee/edge-message-processor/conf
    

    উদাহরণস্বরূপ, যদি আপনি Expires হেডারের জন্য প্রপার্টিটি সেট করতে চান, তাহলে মেসেজ প্রসেসরে HTTPHeader.Expires টোকেন প্রপার্টির বর্তমান মানটি যাচাই করুন:

    grep -ri "HTTPHeader.Expires" /opt/apigee/edge-message-processor/conf
    

    উপরোক্ত কমান্ডের আউটপুট নিম্নলিখিতগুলির মধ্যে একটি হয়:

    1. প্রপার্টিটি ফাঁকা সেট করা থাকলে, এর মানে হলো ভ্যালুটি ওভাররাইট হয়ে যাবে (এবং এটি পূর্ব-বিদ্যমান কনফিগারেশন সহ একটি হেডার), যাতে ডুপ্লিকেট হেডার এবং একাধিক ভ্যালু অনুমোদিত না হয়। অর্থাৎ, Apigee-তে পাঠানো HTTP রিকোয়েস্ট বা HTTP রেসপন্সের অংশ হিসেবে আপনি Expires হেডারটি একাধিকবার পাঠাতে পারবেন না।
    2. নির্দিষ্ট প্রপার্টিটির জন্য কোনো ফলাফল না থাকলে, তার মানে হলো সেই ভ্যালুটি ওভাররাইট করা হয়নি (এবং এটি আগে থেকে বিদ্যমান কনফিগারেশনসহ কোনো হেডার নয়)। এর মানে হলো, Apigee Edge-এ পাঠানো HTTP রিকোয়েস্ট বা HTTP রেসপন্সের অংশ হিসেবে নির্দিষ্ট হেডারটি একাধিকবার পাঠানো যেতে পারে (ডুপ্লিকেট পাঠানোর অনুমতি আছে)।
    3. প্রপার্টিটি allowDuplicates, multiValued ভ্যালু দিয়ে সেট করা থাকলে, তার মানে হলো সেই ভ্যালুটি স্পষ্টভাবে ওভাররাইট করা হয় (এবং এটি পূর্ব-বিদ্যমান কনফিগারেশন সহ একটি হেডার)। এর মানে হলো, Apigee-তে পাঠানো HTTP রিকোয়েস্ট বা HTTP রেসপন্সের অংশ হিসেবে নির্দিষ্ট হেডারটি একাধিকবার পাঠানো যেতে পারে (ডুপ্লিকেট অনুমোদিত)।

    সার্চ কমান্ডের নমুনা আউটপুট:

    /opt/apigee/edge-message-processor/conf/http.properties:HTTPHeader.Expires=

    উপরের নমুনা আউটপুট থেকে দেখা যায় যে, HTTPHeader.Expires প্রপার্টিটির মান ফাঁকা রাখা হয়েছে। এর মানে হলো, Expires হেডারের জন্য একই বা একাধিক মান যাতে গ্রহণ করা না হয় , সেজন্য প্রপার্টিটি ওভাররাইট করা হয়েছে

  2. যদি আপনি লক্ষ্য করেন যে নির্দিষ্ট হেডারের সাথে সম্পর্কিত প্রপার্টিটি ডুপ্লিকেট বা একাধিক ভ্যালু অনুমোদন না করার জন্য স্পষ্টভাবে ওভাররাইট করা হয়েছে , যেমনটি উপরের উদাহরণ আউটপুটে দেখানো হয়েছে, শুধুমাত্র তখনই নিম্নলিখিত ধাপগুলি অনুসরণ করুন। যদি এটি স্পষ্টভাবে ওভাররাইট করা না থাকে, তাহলে এই বিভাগের বাকি ধাপগুলি এড়িয়ে যান।
  3. সম্পাদনা করুন। যদি এটি বিদ্যমান না থাকে, আপনি এটি তৈরি করতে পারেন:
    /opt/apigee/customer/application/message-processor.properties

    উদাহরণস্বরূপ, vi ব্যবহার করে ফাইলটি খুলতে, নিম্নলিখিতটি লিখুন:

    vi /opt/apigee/customer/application/message-processor.properties
    
  4. নিম্নলিখিত বিন্যাসে একটি লাইন যোগ করুন:
    conf_http_HTTPHeader.Expires=allowDuplicates, multiValued
  5. আপনার পরিবর্তনগুলো সংরক্ষণ করুন।
  6. নিশ্চিত করুন যে প্রোপার্টিজ ফাইলটির মালিক apigee ব্যবহারকারী। যদি তা না হয়, তাহলে নিম্নলিখিত কমান্ডটি চালান:

    chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
    
  7. মেসেজ প্রসেসরটি পুনরায় চালু করুন:

    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
    

    ট্র্যাফিকের উপর প্রভাব ছাড়াই পুনরায় চালু করতে, “ট্র্যাফিকের উপর প্রভাব ছাড়াই মেসেজ প্রসেসরগুলির রোলিং রিস্টার্ট” দেখুন।

  8. আপনার যদি একাধিক মেসেজ প্রসেসর থাকে, তাহলে সবগুলো মেসেজ প্রসেসরের ক্ষেত্রে উপরের ধাপগুলো পুনরাবৃত্তি করুন।

হেডারটি ডুপ্লিকেট এবং একাধিক মান রাখার জন্য কনফিগার করা আছে কিনা তা যাচাই করা হচ্ছে।

এই বিভাগে ব্যাখ্যা করা হয়েছে কিভাবে যাচাই করতে হয় যে, মেসেজ প্রসেসরগুলিতে ডুপ্লিকেট অনুমোদনের জন্য একটি নির্দিষ্ট হেডারের HTTPHeader. HEADER_NAME প্রপার্টিটি সফলভাবে আপডেট করা হয়েছে।

আমরা উদাহরণ হেডার হিসেবে Expires ব্যবহার করব এবং পরীক্ষা করে দেখব যে এর সংশ্লিষ্ট প্রপার্টি HTTPHeader.Expires আপডেট হয়েছে কি না।

যদিও আপনি মেসেজ প্রসেসরে মান আপডেট করার জন্য conf_http_HTTPHeader.Expires টোকেনটি ব্যবহার করেন, আপনাকে যাচাই করতে হবে যে প্রকৃত HTTPHeader.Expires প্রপার্টিটি নতুন মান দিয়ে সেট করা হয়েছে কিনা।

  1. মেসেজ প্রসেসর মেশিনে, /opt/apigee/edge-message-processor/conf ডিরেক্টরিতে HTTPHeader. HEADER_NAME প্রপার্টিটি খুঁজুন এবং নিচে দেখানো নতুন মান দিয়ে এটি সেট করা হয়েছে কিনা তা পরীক্ষা করুন:
    grep -ri "HTTPHeader.HEADER_NAME" /opt/apigee/edge-message-processor/conf
    

    উদাহরণস্বরূপ, HTTPHeader.Expires প্রপার্টিটি নতুন মান দিয়ে সেট করা হয়েছে কিনা তা পরীক্ষা করতে চাইলে, নিম্নলিখিত কমান্ডটি চালান:

    grep -ri "HTTPHeader.Expires" /opt/apigee/edge-message-processor/conf
    
  2. মেসেজ প্রসেসরে HTTPHeader. HEADER_NAME এর জন্য নতুন মান সফলভাবে সেট করা হলে, উপরের কমান্ডটি http.properties ফাইলে নতুন মানটি প্রদর্শন করে।
  3. allowDuplicates এবং multiValued কনফিগার করার পর উপরের কমান্ড থেকে প্রাপ্ত নমুনা ফলাফলটি নিম্নরূপ:

    /opt/apigee/edge-message-processor/conf/http.properties:HTTPHeader.Expires=allowDuplicates, multiValued
  4. উপরের উদাহরণ আউটপুটে লক্ষ্য করুন যে, http.properties ফাইলে HTTPHeader.Expires প্রপার্টিটিকে allowDuplicates, multiValued এই নতুন ভ্যালু দিয়ে সেট করা হয়েছে। এটি নির্দেশ করে যে, মেসেজ প্রসেসরে HTTPHeader এ ডুপ্লিকেট এবং একাধিক ভ্যালু অনুমোদনের আচরণটি সফলভাবে কনফিগার করা হয়েছে।
  5. আপনি যদি এখনও HTTPHeader. HEADER_NAME তাহলে যাচাই করুন যে আপনি `allowDuplicates and multiple values ​​for headers` অংশে বর্ণিত সমস্ত ধাপ সঠিকভাবে অনুসরণ করেছেন কিনা। যদি কোনো ধাপ বাদ পড়ে থাকে, তাহলে সমস্ত ধাপ আবার সঠিকভাবে পুনরাবৃত্তি করুন।

    আপনার প্রক্সিগুলো প্রত্যাশিতভাবে কাজ করছে কিনা তা নিশ্চিত করুন, বিশেষ করে যদি প্রক্সিতে হেডারগুলো গ্রহণ ও সেট করার জন্য কোনো কার্যকরী লজিক থাকে।

  6. আপনি যদি এখনও প্রপার্টিটি পরিবর্তন করতে না পারেন, তাহলে Apigee Edge Support-এর সাথে যোগাযোগ করুন।

হেডারগুলির জন্য allowDuplicates নিষ্ক্রিয় করা

এই বিভাগে ব্যাখ্যা করা হয়েছে কিভাবে "How to configure Edge" -এ বর্ণিত সিনট্যাক্স অনুযায়ী সংশ্লিষ্ট টোকেন ব্যবহার করে, মেসেজ প্রসেসরগুলিতে একটি নির্দিষ্ট HTTP হেডারের জন্য ডুপ্লিকেট এবং একাধিক মান অনুমোদন না করার জন্য HTTPHeader.{Headername} প্রপার্টিটি কনফিগার করতে হয়।

এই অংশে, আমরা Expires (এবং myheader )-কে একটি উদাহরণ হেডার হিসেবে ব্যবহার করব, যার ক্ষেত্রে আমরা ডুপ্লিকেট অনুমোদন করতে চাই না, যা নিচে ব্যাখ্যা করা হলো:

  1. নিম্নলিখিত কমান্ডটি ব্যবহার করে HTTPHeader HEADER_NAME প্রপার্টির বর্তমান মান নির্ধারণ করুন এবং নিশ্চিত করুন যে এটি ডুপ্লিকেট ও একাধিক মানের অনুমতি দেওয়ার জন্য আগে থেকেই নিষ্ক্রিয় করা নেই :
    grep -ri "HTTPHeader.HEADER_NAME" /opt/apigee/edge-message-processor/conf
    

    উদাহরণস্বরূপ, আপনি যদি Expires হেডারের জন্য প্রপার্টি সেট করতে চান, তাহলে মেসেজ প্রসেসরে HTTPHeader.Expires টোকেন প্রপার্টির বর্তমান মানটি যাচাই করুন:

    grep -ri "HTTPHeader.Expires" /opt/apigee/edge-message-processor/conf
    

    উপরোক্ত কমান্ডের আউটপুট নিম্নলিখিতগুলির মধ্যে একটি হয়:

    1. প্রপার্টিটি ফাঁকা সেট করা থাকলে, এর মানে হলো ডুপ্লিকেট হেডার এবং একাধিক ভ্যালু যাতে অনুমোদিত না হয়, সেজন্য ভ্যালুটি ওভাররাইট করা হয় । অর্থাৎ, Apigee-তে পাঠানো HTTP রিকোয়েস্ট বা HTTP রেসপন্সের অংশ হিসেবে আপনি Expires হেডারটি একাধিকবার পাঠাতে পারবেন না।
    2. নির্দিষ্ট প্রপার্টিটির জন্য কোনো ফলাফল না থাকলে, তার মানে হলো সেই ভ্যালুটি ওভাররাইট করা হয়নি এবং এটি আগে থেকে বিদ্যমান কনফিগারেশন সহ একটি NOT হেডার। এর মানে হলো, Apigee Edge-এ পাঠানো HTTP রিকোয়েস্ট বা HTTP রেসপন্সের অংশ হিসেবে নির্দিষ্ট হেডারটি একাধিকবার পাঠানো যেতে পারে (ডুপ্লিকেট অনুমোদিত)।
    3. প্রপার্টিটি allowDuplicates, multiValued ভ্যালু দিয়ে সেট করা আছে, যার মানে হলো সেই ভ্যালুটি স্পষ্টভাবে ওভাররাইট করা হয় এবং এটি একটি বিদ্যমান কনফিগারেশন । তবে, এর মানে হলো Apigee-তে পাঠানো HTTP রিকোয়েস্ট বা HTTP রেসপন্সের অংশ হিসেবে নির্দিষ্ট হেডারটি একাধিকবার পাঠানো যেতে পারে (ডুপ্লিকেট অনুমোদিত)।

    নমুনা আউটপুট #১

    সার্চ কমান্ডের নমুনা আউটপুট #১:

    /opt/apigee/edge-message-processor/conf/http.properties:HTTPHeader.Expires=allowDuplicates, multiValued

    নমুনা আউটপুট থেকে দেখা যায় যে, HTTPHeader.Expires প্রপার্টিটি allowDuplicates, multiValued এ সেট করা হয়েছে। এর মানে হলো, Expires হেডারের জন্য ডুপ্লিকেট বা একাধিক ভ্যালু অনুমোদনের উদ্দেশ্যে প্রপার্টিটি ওভাররাইট করা হয়েছে

    নমুনা আউটপুট #২

    সার্চ কমান্ডের নমুনা কমান্ড এবং আউটপুট #২

    grep -ri "HTTPHeader.myheader" /opt/apigee/edge-message-processor/conf
    

    নমুনা আউটপুটে কোনো ফলাফল দেখা যাচ্ছে না, যা থেকে বোঝা যায় যে HTTPHeader.myheader প্রপার্টিটি ডিফল্টরূপে allowDuplicates, multiValued হিসেবে সেট করা আছে। এর থেকে আরও বোঝা যায় যে myheader হেডারের জন্য প্রপার্টিটি ওভাররাইট করা হয় না

  2. যদি আপনি নিম্নলিখিতগুলির মধ্যে কোনো একটি লক্ষ্য করেন, তাহলে এই বিভাগের বাকি ধাপগুলি অনুসরণ করুন:
    1. নির্দিষ্ট হেডারের সাথে সম্পর্কিত প্রপার্টিটি ওভাররাইট করা হয়, যাতে ডুপ্লিকেট এবং একাধিক ভ্যালু অনুমোদিত হয়, যেমনটি উপরের নমুনা আউটপুট #১- এ দেখানো হয়েছে ( পূর্ব-বিদ্যমান কনফিগারেশন সহ হেডার)।
    2. উপরের নমুনা আউটপুট #২-এর মতো নির্দিষ্ট হেডারের সাথে সম্পর্কিত প্রপার্টির জন্য কোনো ফলাফল পাওয়া যায়নি (যে হেডারে আগে থেকে কনফিগারেশন নেই)।

    অন্যথায়, এই বিভাগের বাকি ধাপগুলো এড়িয়ে যান।

  3. নিম্নলিখিত ফাইলটি সম্পাদনা করুন। ফাইলটি না থাকলে, আপনি এটি তৈরি করতে পারেন।
    /opt/apigee/customer/application/message-processor.properties

    উদাহরণস্বরূপ, vi ব্যবহার করে ফাইলটি খুলতে, নিম্নলিখিতটি লিখুন:

    vi /opt/apigee/customer/application/message-processor.properties
    
  4. প্রোপার্টিজ ফাইলে নিম্নলিখিত বিন্যাসে একটি লাইন যোগ করুন:

    পূর্ব-বিদ্যমান কনফিগারেশন

    দৃশ্যকল্প #১: পূর্ব-বিদ্যমান কনফিগারেশন সহ হেডার:

    conf_http_HTTPHeader.Expires=

    কোনো পূর্ব-বিদ্যমান কনফিগারেশন নেই

    দৃশ্যকল্প #২: পূর্ব-বিদ্যমান কনফিগারেশন সহ হেডার নয়:

    conf/http.properties+HTTPHeader.myheader=
  5. আপনার পরিবর্তনগুলো সংরক্ষণ করুন।
  6. নিশ্চিত করুন যে প্রোপার্টিজ ফাইলটির মালিক apigee ব্যবহারকারী। যদি তা না হয়, তাহলে নিম্নলিখিতটি সম্পাদন করুন:
    chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
    
  7. মেসেজ প্রসেসরটি পুনরায় চালু করুন:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
    

    ট্র্যাফিকের উপর প্রভাব ছাড়াই পুনরায় চালু করতে, “ট্র্যাফিকের উপর প্রভাব ছাড়াই মেসেজ প্রসেসরগুলির রোলিং রিস্টার্ট” দেখুন।

  8. আপনার যদি একাধিক মেসেজ প্রসেসর থাকে, তাহলে সবগুলো মেসেজ প্রসেসরের ক্ষেত্রে উপরের ধাপগুলো পুনরাবৃত্তি করুন।

হেডারটি ডুপ্লিকেট এবং একাধিক মান অনুমোদন না করার জন্য কনফিগার করা আছে কিনা তা যাচাই করা হচ্ছে।

এই বিভাগে ব্যাখ্যা করা হয়েছে কিভাবে যাচাই করতে হয় যে, মেসেজ প্রসেসরগুলিতে ডুপ্লিকেট হেডার যাতে না থাকে, তার জন্য একটি নির্দিষ্ট হেডারের HTTPHeader. HEADER_NAME প্রপার্টিটি সফলভাবে আপডেট করা হয়েছে।

আমরা উদাহরণ হেডার হিসেবে Expires (এবং myheader ) ব্যবহার করব এবং পরীক্ষা করে দেখব যে সংশ্লিষ্ট প্রপার্টি HTTPHeader.Expires (এবং HTTPHeader.myheader ) আপডেট হয়েছে কি না।

  1. মেসেজ প্রসেসর মেশিনে, /opt/apigee/edge-message- processor/conf ডিরেক্টরিতে HTTPHeader. HEADER_NAME প্রপার্টিটি খুঁজুন এবং পরীক্ষা করে দেখুন যে এটি নীচে দেখানো নতুন মান দিয়ে সেট করা হয়েছে কিনা:

    grep -ri "HTTPHeader.HEADER_NAME" /opt/apigee/edge-message-processor/conf
    

    উদাহরণস্বরূপ, HTTPHeader.Expires প্রপার্টিটি নতুন মান দিয়ে সেট করা হয়েছে কিনা তা পরীক্ষা করতে চাইলে, আপনি নিম্নলিখিত কমান্ডটি চালাতে পারেন:

    পূর্ব-বিদ্যমান কনফিগারেশন

    grep -ri "HTTPHeader.Expires" /opt/apigee/edge-message-processor/conf
    

    কোনো পূর্ব-বিদ্যমান কনফিগারেশন নেই

    grep -ri "HTTPHeader.myheader" /opt/apigee/edge-message-processor/conf
    
  2. মেসেজ প্রসেসরে HTTPHeader. HEADER_NAME I-এর জন্য নতুন HTTP হেডার ভ্যালুটি সফলভাবে সেট করা হলে, উপরের কমান্ডটি http.properties ফাইলে নতুন ভ্যালুটি প্রদর্শন করে।
  3. allowDuplicates নিষ্ক্রিয় করার পর উপরের কমান্ড থেকে প্রাপ্ত নমুনা ফলাফলটি নিম্নরূপ:

    পূর্ব-বিদ্যমান কনফিগারেশন

    দৃশ্যকল্প #১ : হেডারের মেয়াদ শেষ হওয়া ( পূর্ব-বিদ্যমান কনফিগারেশন সহ হেডার)

    /opt/apigee/edge-message-processor/conf/http.properties:HTTPHeader.Expires=

    কোনো পূর্ব-বিদ্যমান কনফিগারেশন নেই

    দৃশ্যকল্প #২: myheader হেডার (পূর্ব-বিদ্যমান কনফিগারেশন সহ কোনো হেডার নয়)

    /opt/apigee/edge-message-processor/conf/http.properties:HTTPHeader.myheader=
  4. উপরের উদাহরণ আউটপুটে লক্ষ্য করুন যে, http.properties ফাইলে HTTPHeader.Expires (এবং HTTPHeader.myheader ) প্রপার্টিটির নতুন মান { blank} সেট করা হয়েছে। এটি নির্দেশ করে যে, মেসেজ প্রসেসরে নির্দিষ্ট HTTP হেডার Expires (এবং myheader )-এর জন্য ডুপ্লিকেট এবং একাধিক মান অনুমোদনের আচরণটি সফলভাবে নিষ্ক্রিয় করা হয়েছে।
  5. আপনি যদি এখনও HTTPHeader.Expires (or HTTPHeader.myheader) প্রপার্টির জন্য পুরোনো মানটি দেখতে পান, তাহলে যাচাই করুন যে আপনি `allowDuplicates and multiple values ​​for headers` অংশে বর্ণিত সমস্ত ধাপ সঠিকভাবে অনুসরণ করেছেন কিনা। যদি কোনো ধাপ বাদ পড়ে থাকে, তাহলে সমস্ত ধাপ আবার সঠিকভাবে পুনরাবৃত্তি করুন।

    আপনার প্রক্সিগুলো প্রত্যাশিতভাবে কাজ করছে কিনা তা নিশ্চিত করুন, বিশেষ করে যদি প্রক্সিতে হেডারগুলো গ্রহণ ও সেট করার জন্য কোনো কার্যকরী লজিক থাকে।

  6. আপনি যদি এখনও প্রপার্টিটি পরিবর্তন করতে না পারেন, তাহলে Apigee Edge Support-এর সাথে যোগাযোগ করুন।