আপনি Apigee Edge ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশনে যান । তথ্য
Apigee Edge এ, একটি রাউটার সমস্ত আগত API ট্র্যাফিক পরিচালনা করে। এর মানে হল একটি এজ এপিআই প্রক্সিতে সমস্ত HTTP এবং HTTPS অনুরোধগুলি প্রথমে একটি এজ রাউটার দ্বারা পরিচালনা করা হয়। অতএব, API প্রক্সি অনুরোধ অবশ্যই IP ঠিকানায় নির্দেশিত হতে হবে এবং একটি রাউটারে পোর্ট খুলতে হবে।
একটি ভার্চুয়াল হোস্ট আপনাকে একটি সার্ভার বা সার্ভারের গ্রুপে একাধিক ডোমেন নাম হোস্ট করতে দেয়। এজের জন্য, সার্ভারগুলি এজ রাউটারগুলির সাথে মিলে যায়। রাউটারে ভার্চুয়াল হোস্ট সংজ্ঞায়িত করে, আপনি একাধিক ডোমেনে অনুরোধগুলি পরিচালনা করতে পারেন।
এজ-এ একটি ভার্চুয়াল হোস্ট একটি রাউটার পোর্ট এবং একটি হোস্ট উপনাম সহ একটি প্রোটোকল (HTTP বা HTTPS) সংজ্ঞায়িত করে। হোস্ট উপনাম সাধারণত একটি DNS ডোমেন নাম যা একটি রাউটারের আইপি ঠিকানায় ম্যাপ করে।
উদাহরণস্বরূপ, নিম্নলিখিত চিত্রটি দুটি ভার্চুয়াল হোস্ট সংজ্ঞা সহ একটি রাউটার দেখায়:
এই উদাহরণে, দুটি ভার্চুয়াল হোস্ট সংজ্ঞা আছে। একটি ডোমেইন ডোমেইননেম1 -এ HTTPS অনুরোধগুলি পরিচালনা করে, অন্যটি ডোমেননাম2 -এ HTTP অনুরোধগুলি পরিচালনা করে।
এপিআই প্রক্সির অনুরোধে, রাউটার কোন ভার্চুয়াল হোস্ট অনুরোধটি পরিচালনা করে তা নির্ধারণ করতে সমস্ত ভার্চুয়াল হোস্ট দ্বারা সংজ্ঞায়িত হোস্ট উপনামের তালিকার সাথে ইনকামিং অনুরোধের হোস্ট হেডার এবং পোর্ট নম্বর তুলনা করে।
ভার্চুয়াল হোস্টের জন্য নমুনা কনফিগারেশন নীচে দেখানো হয়েছে:
অ্যান্টিপ্যাটার্ন
একটি প্রতিষ্ঠানের একই/ভিন্ন পরিবেশে বা সংস্থা জুড়ে একই হোস্ট উপনাম এবং পোর্ট নম্বর সহ একাধিক ভার্চুয়াল হোস্ট সংজ্ঞায়িত করা API অনুরোধ রাউটিং করার সময় বিভ্রান্তির দিকে নিয়ে যাবে এবং অপ্রত্যাশিত ত্রুটি/আচরণ ঘটাতে পারে।
একই হোস্ট উপনাম সহ একাধিক ভার্চুয়াল হোস্ট থাকার প্রভাব ব্যাখ্যা করার জন্য একটি উদাহরণ ব্যবহার করা যাক।
বিবেচনা করুন দুটি ভার্চুয়াল হোস্ট sandbox and secure
আছে sandbox and secure
একটি পরিবেশে একই হোস্ট ওরফে যেমন, api.company.abc.com
দিয়ে সংজ্ঞায়িত করা হয়েছে:
উপরের সেটআপের সাথে, নিম্নলিখিত বিভাগে বর্ণিত দুটি পরিস্থিতি হতে পারে।
দৃশ্যকল্প 1 : একটি এপিআই প্রক্সি শুধুমাত্র একটি ভার্চুয়াল হোস্ট স্যান্ডবক্সের অনুরোধ গ্রহণ করার জন্য কনফিগার করা হয়েছে
<ProxyEndpoint name="default"> ... <HTTPProxyConnection> <BasePath>/demo</BasePath> <VirtualHost>sandbox</VirtualHost> </HTTPProxyConnection> ... </ProxyEndpoint>
এই পরিস্থিতিতে, যখন ক্লায়েন্ট অ্যাপ্লিকেশনগুলি হোস্ট ওরফে api.company.abc.com
ব্যবহার করে নির্দিষ্ট API প্রক্সিতে কল করে, তখন তারা মাঝে মাঝে বার্তাটির সাথে 404টি ত্রুটি পাবে:
Unable to identify proxy for host: secure
কারণ রাউটার sandbox
এবং secure
ভার্চুয়াল হোস্ট উভয়কেই অনুরোধ পাঠায়। অনুরোধগুলি sandbox
ভার্চুয়াল হোস্টে পাঠানো হলে, ক্লায়েন্ট অ্যাপ্লিকেশনগুলি একটি সফল প্রতিক্রিয়া পাবে। যাইহোক, যখন অনুরোধগুলি secure
ভার্চুয়াল হোস্টে রুট করা হয়, ক্লায়েন্ট অ্যাপ্লিকেশনগুলি 404 ত্রুটি পাবে কারণ API প্রক্সি secure
ভার্চুয়াল হোস্টে অনুরোধগুলি গ্রহণ করার জন্য কনফিগার করা হয়নি৷
দৃশ্যকল্প 2 : ভার্চুয়াল হোস্ট স্যান্ডবক্স এবং সুরক্ষিত উভয়ের অনুরোধ গ্রহণ করার জন্য একটি API প্রক্সি কনফিগার করা হয়েছে
<ProxyEndpoint name="default"> ... <HTTPProxyConnection> <BasePath>/demo</BasePath> <VirtualHost>sandbox</VirtualHost> <VirtualHost>secure</VirtualHost> </HTTPProxyConnection> ... </ProxyEndpoint>
এই পরিস্থিতিতে, যখন ক্লায়েন্ট অ্যাপ্লিকেশনগুলি হোস্ট ওরফে api.company.abc.com
ব্যবহার করে নির্দিষ্ট API প্রক্সিতে কল করে, তখন তারা প্রক্সি লজিকের উপর ভিত্তি করে একটি বৈধ প্রতিক্রিয়া পাবে৷
যাইহোক, এর ফলে অ্যানালিটিক্সে ভুল ডেটা সংরক্ষণ করা হয় কারণ API অনুরোধগুলি উভয় ভার্চুয়াল হোস্টে পাঠানো হয়, যখন প্রকৃত অনুরোধগুলি শুধুমাত্র একটি ভার্চুয়াল হোস্টে পাঠানোর লক্ষ্য ছিল।
এটি ভার্চুয়াল হোস্টের উপর ভিত্তি করে লগিং তথ্য এবং অন্য কোনো ডেটাকেও প্রভাবিত করতে পারে।
প্রভাব
- 404 ত্রুটিগুলি যেমন API অনুরোধগুলি একটি ভার্চুয়াল হোস্টে যেতে পারে যেখানে অনুরোধগুলি গ্রহণ করার জন্য API প্রক্সি কনফিগার করা নাও হতে পারে৷
- ভুল অ্যানালিটিক্স ডেটা যেহেতু API অনুরোধগুলি একই হোস্ট উপনাম থাকা সমস্ত ভার্চুয়াল হোস্টে রুট করা হয় যখন অনুরোধগুলি শুধুমাত্র একটি নির্দিষ্ট ভার্চুয়াল হোস্টের জন্য করা হয়েছিল৷
সর্বোত্তম অনুশীলন
- একই পরিবেশে বা একটি প্রতিষ্ঠানের বিভিন্ন পরিবেশে একই হোস্ট উপনাম এবং পোর্ট নম্বর সহ একাধিক ভার্চুয়াল হোস্ট সংজ্ঞায়িত করবেন না।
যদি একাধিক ভার্চুয়াল হোস্ট সংজ্ঞায়িত করার প্রয়োজন হয়, তাহলে নীচে দেখানো হিসাবে প্রতিটি ভার্চুয়াল হোস্টে বিভিন্ন হোস্ট উপনাম ব্যবহার করুন: