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

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

HTTP স্পেসিফিকেশন RFC 7230 অনুযায়ী, বিভাগ 3.2.2: ফিল্ড অর্ডার , Apigee এজ আশা করে যে ক্লায়েন্ট থেকে HTTP অনুরোধ বা ব্যাকএন্ড সার্ভার থেকে HTTP প্রতিক্রিয়া একই শিরোনাম একই বা ভিন্ন মানের সাথে একাধিকবার পাস করা হবে না। , যদি না নির্দিষ্ট শিরোনামের একটি ব্যতিক্রম থাকে এবং সদৃশ থাকার অনুমতি দেওয়া হয়।

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

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

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

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

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

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

Apigee Edge HTTP শিরোনামগুলির জন্য ডুপ্লিকেট এবং একাধিক মানকে অনুমতি দেওয়ার আচরণ নিয়ন্ত্রণ করতে নিম্নলিখিত দুটি বৈশিষ্ট্য সরবরাহ করে। মনে রাখবেন যে এগুলি কীভাবে এজ কনফিগার করতে হয় তাতে ব্যাখ্যা করা টোকেন সিনট্যাক্স ব্যবহার করে শুধুমাত্র মেসেজ প্রসেসরগুলিতে কনফিগার করা যেতে পারে।

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

এই বৈশিষ্ট্যটি নির্দেশ করে যে সমস্ত HTTP শিরোনামগুলির জন্য অনুলিপি বা একাধিক মান অনুমোদিত কিনা ক্লায়েন্ট দ্বারা করা HTTP অনুরোধের অংশ হিসাবে প্রেরিত কাস্টম শিরোনাম সহ বা ব্যাকএন্ড সার্ভার দ্বারা Apigee এজ-এ পাঠানো 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 প্রাইভেট ক্লাউড সেটআপে যে নির্দিষ্ট শিরোনামগুলির ডুপ্লিকেট এবং একাধিক মান থাকার অনুমতি নেই , এবং
  • পূর্ব-বিদ্যমান কনফিগারেশন সহ নির্দিষ্ট হেডার
  1. বার্তা প্রসেসর মেশিনে, HTTPHeader. নীচে দেখানো হিসাবে /opt/apigee/edge-message-processor/conf ডিরেক্টরিতে:

    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. এইচটিটিপি হেডার Host এবং Expires ওভাররাইট করা হয়েছে এবং ডুপ্লিকেট এবং একাধিক মান থাকার অনুমতি নেই
    3. এইচটিটিপি হেডার Date ওভাররাইট করা হয়েছে এবং ডুপ্লিকেট রাখার অনুমতি দেওয়া হয়েছে কিন্তু একাধিক মান রাখার অনুমতি নেই৷
    4. এখানে উপস্থিত সমস্ত শিরোনাম ( Connection , Host , Expires , এবং উপরের নমুনায় Date ) এই নথিতে পূর্ব-বিদ্যমান কনফিগার সহ শিরোনাম হিসাবে উল্লেখ করা হয়েছে।

Apigee প্রান্তের আচরণ

নিম্নোক্ত সারণী 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

আপনি শুরু করার আগে

আপনি এই নথির ধাপগুলি ব্যবহার করার আগে, নিশ্চিত করুন যে আপনি এজ অন প্রাইভেট ক্লাউডের জন্য কনফিগার করার বৈশিষ্ট্যগুলি বুঝতে পেরেছেন, এজ কীভাবে কনফিগার করবেন- এ বর্ণিত আছে।

শিরোনামগুলির জন্য অনুলিপি অনুমোদন এবং একাধিক মান কনফিগার করা হচ্ছে

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

এই বিভাগটি ব্যাখ্যা করে কিভাবে প্রপার্টি HTTPHeader. HEADER_NAME মেসেজ প্রসেসরগুলিতে এই জাতীয় যেকোন HTTP শিরোনামের জন্য ডুপ্লিকেট এবং একাধিক মান অনুমোদন করতে, কিভাবে এজ কনফিগার করতে হয় তাতে বর্ণিত সিনট্যাক্স অনুসারে সংশ্লিষ্ট টোকেন ব্যবহার করে।

এই বিভাগে, আমরা একটি উদাহরণ শিরোনাম হিসাবে 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. প্রপার্টিটি ফাঁকা সেট করা হয়েছে, তারপর এটি বোঝায় যে মানটি ওভাররাইট করা হয়েছে (এবং এটি পূর্ব-বিদ্যমান কনফিগার সহ একটি শিরোনাম) যাতে ডুপ্লিকেট শিরোনাম এবং একাধিক মান অনুমোদন না করা যায়। অর্থাৎ, আপনাকে HTTP অনুরোধের অংশ হিসাবে বা Apigee-তে HTTP প্রতিক্রিয়ার অংশ হিসাবে Expires শিরোনামটি একাধিকবার পাঠানোর অনুমতি নেই।
    2. নির্দিষ্ট সম্পত্তির জন্য কোন হিট নেই, তাহলে এর মানে হল যে মানটি ওভাররাইট করা হয়নি (এবং এটি পূর্ব-বিদ্যমান কনফিগারেশন সহ একটি শিরোনাম নয়)। এর মানে হল যে নির্দিষ্ট শিরোনামটি একাধিকবার পাঠানো যেতে পারে (ডুপ্লিকেট অনুমোদিত) HTTP অনুরোধের অংশ হিসাবে বা Apigee Edge-এ HTTP প্রতিক্রিয়া।
    3. প্রপার্টিটি মান দিয়ে সেট করা হয়েছে allowDuplicates, multiValued তারপর এর মানে হল যে মানটি স্পষ্টভাবে ওভাররাইট করা হয়েছে (এবং এটি পূর্ব-বিদ্যমান কনফিগারেশন সহ একটি হেডার)। এর মানে হল যে নির্দিষ্ট শিরোনামটি একাধিকবার পাঠানো যেতে পারে (ডুপ্লিকেট অনুমোদিত) HTTP অনুরোধের অংশ হিসাবে বা Apigee-তে 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 একটি নির্দিষ্ট শিরোনামের জন্য HTTPHeader. HEADER_NAME সফলভাবে আপডেট করা হয়েছে যাতে বার্তা প্রসেসরগুলিতে সদৃশগুলিকে অনুমতি দেওয়া যায়৷

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

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

  1. বার্তা প্রসেসর মেশিনে, HTTPHeader. HEADER_NAME /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. উপরের উদাহরণের আউটপুটে, লক্ষ্য করুন যে HTTPHeader.Expires প্রপার্টিটি http.propertiesallowDuplicates, multiValued দিয়ে সেট করা হয়েছে। এটি নির্দেশ করে যে HTTPHeader এ সদৃশ এবং একাধিক মানকে অনুমতি দেওয়ার আচরণ সফলভাবে মেসেজ প্রসেসরে কনফিগার করা হয়েছে।
  5. আপনি যদি এখনও প্রপার্টি HTTPHeader. HEADER_NAME , তারপর যাচাই করুন যে আপনি অনুলিপি এবং শিরোনামগুলির জন্য একাধিক মান কনফিগার করার জন্য নির্দেশিত সমস্ত ধাপ অনুসরণ করেছেন। আপনি যদি কোনো ধাপ মিস করে থাকেন তবে সবগুলো ধাপ সঠিকভাবে পুনরাবৃত্তি করুন।

    নিশ্চিত করুন যে আপনার প্রক্সিগুলি প্রত্যাশিত হিসাবে কাজ করছে, বিশেষ করে যদি প্রক্সিতে হেডারগুলি পেতে এবং সেট করার জন্য একটি কার্যকরী যুক্তি থাকে৷

  6. আপনি যদি এখনও সম্পত্তি সংশোধন করতে সক্ষম না হন, তাহলে Apigee Edge সাপোর্টের সাথে যোগাযোগ করুন

শিরোনাম জন্য অনুলিপি অনুমতি অক্ষম করা হচ্ছে

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

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

    অনুসন্ধান কমান্ডের নমুনা আউটপুট #1:

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

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

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

    অনুসন্ধান কমান্ডের নমুনা কমান্ড এবং আউটপুট #2

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

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

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

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

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

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

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

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

    দৃশ্য #1: পূর্ব-বিদ্যমান কনফিগার সহ শিরোনাম:

    conf_http_HTTPHeader.Expires=

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

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

    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 একটি নির্দিষ্ট শিরোনামের জন্য HTTPHeader. HEADER_NAME সফলভাবে আপডেট করা হয়েছে যাতে বার্তা প্রসেসরগুলিতে সদৃশগুলিকে অনুমতি না দেওয়া যায়৷

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

  1. বার্তা প্রসেসর মেশিনে, HTTPHeader. HEADER_NAME /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. যদি নতুন HTTP হেডার মান সফলভাবে HTTPHeader. HEADER_NAME I মেসেজ প্রসেসরে, তারপর উপরের কমান্ডটি http.properties ফাইলে নতুন মান দেখায়।
  3. আপনি allowDuplicates নিষ্ক্রিয় করার পরে উপরের কমান্ড থেকে নমুনা ফলাফল নিম্নরূপ:

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

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

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

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

    দৃশ্যকল্প #2: মাইহেডার হেডার (প্রি-বিদ্যমান কনফিগারেশন সহ একটি হেডার নয়)

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

    নিশ্চিত করুন যে আপনার প্রক্সিগুলি প্রত্যাশিত হিসাবে কাজ করছে, বিশেষ করে যদি প্রক্সিতে হেডারগুলি পেতে এবং সেট করার জন্য একটি কার্যকরী যুক্তি থাকে৷

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