ভার্চুয়াল হোস্ট সম্পর্কে

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

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

ভার্চুয়াল হোস্ট আপনাকে একটি সার্ভারে একাধিক ডোমেন নেম হোস্ট করতে দেয়। Edge-এর ক্ষেত্রে, সার্ভারটি Edge রাউটারের সাথে সম্পর্কিত। রাউটারে একাধিক ভার্চুয়াল হোস্টকে সংজ্ঞায়িত করার মাধ্যমে, রাউটার একাধিক ডোমেন নামের জন্য API অনুরোধ হ্যান্ডেল করতে পারে।

Edge-এ ভার্চুয়াল হোস্ট অ্যাক্সেস প্রোটোকল (HTTP বা HTTPS), একটি খোলা রাউটার পোর্ট এবং একটি হোস্ট উপনাম নির্ধারণ করে। হোস্ট অ্যালিয়াস হল সাধারণত DNS ডোমেন নেম যা রাউটারের IP অ্যাড্রেসে ম্যাপ করে।

যেমন, নিম্নলিখিত ছবিতে দুটি ভার্চুয়াল হোস্ট সংজ্ঞা সহ একটি রাউটার দেখানো হয়েছে:

প্রথম ভার্চুয়াল হোস্ট domainName1 ডোমেনে HTTPS অনুরোধ এবং দ্বিতীয়টি domainName2 ডোমেনে HTTP অনুরোধ হ্যান্ডেল করে।

API প্রক্সিতে অনুরোধের ক্ষেত্রে, কোন ভার্চুয়াল হোস্ট অনুরোধটি হ্যান্ডেল করবে তা নির্ধারণ করতে, রাউটার সব ভার্চুয়াল হোস্টের দ্বারা সংজ্ঞায়িত হোস্ট অ্যালিয়াসের তালিকার সাথে ইনকামিং অনুরোধের Host হেডার তুলনা করে।

ভার্চুয়াল হোস্টের সংজ্ঞা সম্পর্কে

ভার্চুয়াল হোস্টের মধ্যে নিম্নলিখিত তথ্য থাকে:

  • ভার্চুয়াল হোস্টের ইন্টার্নাল নাম। আপনি API প্রক্সি এবং ভার্চুয়াল হোস্ট কনফিগার করার সময় ভার্চুয়াল হোস্টের রেফারেন্স হিসেবে সেই নাম ব্যবহার করেন।
  • ভার্চুয়াল হোস্টের হোস্ট অ্যালিয়াস। সাধারণত হোস্ট অ্যালিয়াস হল DNS ডোমেন নেম যা রাউটারে IP অ্যাড্রেসের সাথে ম্যাপ করে। API প্রক্সি অনুরোধের Host হেডার অবশ্যই ভার্চুয়াল হোস্টের হোস্ট অ্যালিয়াস থাকতে হবে।
  • রাউটারে খোলা পোর্ট।
  • TLS (HTTPS অ্যাক্সেস) চালু আছে কিনা (HTTP অ্যাক্সেস)।

যেমন, আপনি ভার্চুয়াল হোস্ট তৈরি করার সময় নিম্নলিখিত তথ্য নির্দিষ্ট করেন:

  • name = myvhost
  • হোস্টের ছদ্মনাম = apis.acme.com
  • port = 443
  • TLS চালু করা আছে

ভার্চুয়াল হোস্টের জন্য উপরে দেওয়া সেটিংয়ের উপর ভিত্তি করে, API প্রক্সির কাছে করা অনুরোধ এই ফর্ম ব্যবহার করে:

https://apis.acme.com/{proxy-base-path}/{resource-path}

কোথায়:

  • আপনি API প্রক্সি তৈরি করলে {proxy-base-path} সংজ্ঞায়িত করা হয় এবং এটি প্রতিটি API প্রক্সির জন্য অনন্য হয়। যেমন:
    https://apis.acme.com/characters
  • {resource-path} API প্রক্সির মাধ্যমে অ্যাক্সেস করা যায় এমন রিসোর্সের পাথ। যেমন:
    https://apis.acme.com/characters/coyote
    https://apis.acme.com/characters/roadrunner

Edge for the Cloud-এ ভার্চুয়াল হোস্ট সম্পর্কে

প্রতিটি Edge প্রতিষ্ঠানে অটোমেটিক দুটি এনভায়রনমেন্ট (test এবং prod), প্রতিটি এনভায়রনমেন্টে দুটি ভার্চুয়াল হোস্ট (default এবং secure), এবং প্রতিটি হোস্টের ছদ্মনামের জন্য DNS রেকর্ড থাকে।

Apigee-এর প্রদান করা প্রতিটি ভার্চুয়াল হোস্টের হোস্ট ছদ্মনামে সংস্থা ও এনভায়রনমেন্টের নাম থাকে, যা নিম্নলিখিত টেবিলে দেখানো হয়েছে:

পরিবেশ ভার্চুয়াল হোস্ট নেম হোস্টের ছদ্মনাম বন্দর TLS চালু করা আছে
prod ডিফল্ট {org-name}-prod.apigee.net ৮০ না
নিরাপদ {org-name}-prod.apigee.net 443 হ্যাঁ
টেস্ট ডিফল্ট {org-name}-test.apigee.net ৮০ না
নিরাপদ {org-name}-test.apigee.net 443 হ্যাঁ

যেমন, prod এনভায়রনমেন্টে "myorg" নামের কোনও সংস্থার ডিফল্ট ডোমেন নাম হল "myorg-prod.apigee.net"। তাই, সেই সংস্থার API প্রক্সি অ্যাক্সেস করতে, আপনাকে এই ফর্ম্যাটে URL ব্যবহার করতে হবে:

http://myorg-prod.apigee.net/{proxy-base-path}/{resource-path}
https://myorg-prod.apigee.net/{proxy-base-path}/{resource-path}

Apigee-এর পেমেন্ট করা প্ল্যান: "apigee.net" সহ ডোমেনের নাম আপনার গ্রাহকদের দেখাতে নাও চাইতে পারেন। Edge-এ আপনার প্রতিষ্ঠানের সাথে ডোমেনের নাম ম্যাপ করার জন্য আপনি DNS এন্ট্রি ও CNAME রেকর্ড ব্যবহার করতে পারবেন। এছাড়াও, আপনাকে অবশ্যই সেই ডোমেন নামের জন্য হোস্ট অ্যালিয়াস সেট করা একটি ভার্চুয়াল হোস্ট তৈরি করতে হবে। এর ফলে ডেভেলপাররা আপনার কোম্পানির জন্য নির্দিষ্ট ডোমেনের মাধ্যমে আপনার API অ্যাক্সেস করতে পারেন।

Edge-এ কাস্টম ডোমেনের একটি উদাহরণ এখানে দেওয়া হল:

https://apis.acme.com/{proxy-base-path}/{resource-path}

প্রাইভেট ক্লাউডের জন্য Edge-এ ভার্চুয়াল হোস্ট সম্পর্কে

আপনি প্রাইভেট ক্লাউডের জন্য Apigee Edge ইনস্টল করলে, আপনার জন্য কোনও ডিফল্ট সংস্থা, এনভায়রনমেন্ট বা ভার্চুয়াল হোস্ট তৈরি হয় না। Edge ইনস্টলেশন প্রসেস সম্পূর্ণ করার পরে, আপনার প্রথম অ্যাকশন হল সাধারণত "অনবোর্ডিং" প্রসেসের মাধ্যমে কোনও সংস্থা, এনভায়রনমেন্ট ও ভার্চুয়াল হোস্ট তৈরি করা।

অনবোর্ডিং করতে, Edge Management Server নোডে নিম্নলিখিত কমান্ড রান করুন:

/opt/apigee/apigee-service/bin/apigee-service apigee-provision setup-org -f configFile

যেখানে configFile-এ ব্যবহারকারী, সংস্থা, এনভায়রনমেন্ট ও ভার্চুয়াল হোস্ট তৈরি করার জন্য প্রয়োজনীয় তথ্য থাকে।

যেমন, আপনি এগুলি তৈরি করেন:

  • আপনার বেছে নেওয়া কোনও ব্যবহারকারীকে প্রতিষ্ঠানের অ্যাডমিনিস্ট্রেটর হিসেবে কাজ করতে হবে
  • example নামের একটি সংস্থা
  • prod নামের সংস্থার মধ্যে একটি এনভায়র্নমেন্ট
  • default নামের এনভায়রনমেন্টে একটি ভার্চুয়াল হোস্ট যা পোর্ট ৯০০১-এ HTTP অ্যাক্সেস দেয়
  • রাউটার অ্যাক্সেস করার জন্য ব্যবহৃত DNS নামের হোস্ট অ্যালিয়াস অথবা রাউটারের IP অ্যাড্রেস এবং IP:9001 ফর্ম্যাটে ভার্চুয়াল হোস্টের পোর্ট।

আপনি পরে Edge-এর অন-প্রিমিজে ভার্সনে যেকোনও সংখ্যক সংস্থা, এনভায়রনমেন্ট ও ভার্চুয়াল হোস্ট যোগ করতে পারবেন। আরও তথ্যের জন্য এগুলি দেখুন:

Edge রাউটারে ভার্চুয়াল হোস্ট খোলা হয়। তাই, আপনাকে নিশ্চিত করতে হবে যে ভার্চুয়াল হোস্টের জন্য আপনি যে পোর্ট নির্দিষ্ট করেছেন সেটি রাউটারে খোলা আছে। পোর্ট খোলার জন্য আপনি নিচে দেওয়া ফর্মের কমান্ড ব্যবহার করতে পারেন:

iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 9001 -j ACCEPT --verbose

ওই কমান্ড চালানোর পরে, আপনি এই ফর্ম্যাটে URL ব্যবহার করে আপনার API অ্যাক্সেস করতে পারবেন:

http://<router-ip>:9001/{proxy-base-path}/{resource-path}

সাধারণত, আপনি IP অ্যাড্রেস ও পোর্ট নম্বর সহ গ্রাহকদের কাছে API প্রকাশ করেন না। পরিবর্তে, আপনি রাউটার ও পোর্টের জন্য একটি DNS এন্ট্রি নির্ধারণ করেন। যেমন:

http://myAPI.myCo.com/{proxy-base-path}/{resource-path}

আপনি ডিএনএস এন্ট্রি নির্ধারণ করার সময়, আপনাকে অবশ্যই হোস্ট অ্যালিয়াস সহ একটি ভার্চুয়াল হোস্ট তৈরি করতে হবে যা ডিএনএস এন্ট্রির ডোমেন নামের সাথে ম্যাচ করে। উপরের উদাহরণ থেকে, আপনি ভার্চুয়াল হোস্ট তৈরি করার সময় myAPI.myCo.com-এর একটি হোস্ট ছদ্মনাম নির্দিষ্ট করবেন।

হোস্ট অ্যালিয়াস ও DNS নাম সম্পর্কে

ভার্চুয়াল হোস্টের জন্য আপনি যে একটি প্রপার্টি সেট করেন সেটি হল হোস্ট অ্যালিয়াস। হোস্ট অ্যালিয়াস হল সাধারণত ভার্চুয়াল হোস্টের DNS নাম। আপনি কীভাবে হোস্ট অ্যালিয়াস সেট করবেন তা আপনার Edge ইনস্টলেশনের ধরনের উপর নির্ভর করে: ক্লাউড বা প্রাইভেট ক্লাউড।

ক্লাউডের জন্য Edge-এ হোস্টের ছদ্মনাম ও DNS নাম

Edge for the Cloud-এ, আপনি প্রথমবার Edge সংস্থা তৈরি করলে, Apigee অটোমেটিক দুটি এনভায়রনমেন্ট (test ও prod), প্রতিটি এনভায়রনমেন্টে দুটি ভার্চুয়াল হোস্ট (ডিফল্ট ও সুরক্ষিত) এবং প্রতিটি ভার্চুয়াল হোস্টের জন্য DNS রেকর্ড তৈরি করে।

ভার্চুয়াল হোস্টের হোস্ট অ্যালিয়াসে সংস্থা ও এনভায়রনমেন্টের নাম থাকে। তাই, ভার্চুয়াল হোস্টের মাধ্যমে করা অনুরোধের ফর্ম হল:

  • http://{org-name}-prod.apigee.net/{proxy-base-path}/{resource-path}
  • https://{org-name}-prod.apigee.net/{proxy-base-path}/{resource-path}
  • http://{org-name}-test.apigee.net/{proxy-base-path}/{resource-path}
  • https://{org-name}-test.apigee.net/{proxy-base-path}/{resource-path}

সাধারণত, আপনি এমন ভার্চুয়াল হোস্ট তৈরি করতে চান যা আপনার ডোমেন নেম ব্যবহার করে, এর পরিবর্তে ডিফল্ট apigee.net ডোমেন ব্যবহার করে না। এটি করতে, আপনাকে প্রথমে নিজের DNS এন্ট্রি ও CNAME রেকর্ড তৈরি করতে হবে।

Edge কীভাবে API অনুরোধ প্রসেস করে তার একটি সাধারণ কনফিগারেশন নিম্নলিখিত চিত্রে দেখানো হয়েছে:

এই উদাহরণে:

  • api.acme.com হল আপনার পছন্দের ডোমেন নাম।
  • আপনি api.acme.com-কে acme-prod.apigee.net-এর দিকে পয়েন্ট করার জন্য একটি DNS এন্ট্রি ও CNAME রেকর্ড নির্ধারণ করেন।
  • অনুরোধে Host হেডার থাকে যা রাউটার ব্যবহার করে ভার্চুয়াল হোস্ট নির্ধারণ করে যা অনুরোধটি ম্যানেজ করে।

এই উদাহরণে, আপনি ভার্চুয়াল হোস্টের সংজ্ঞায় নিম্নলিখিত তথ্য নির্দিষ্ট করেন:

  • name = myvhost
  • হোস্টের ছদ্মনাম = apis.acme.com
  • port = 443
  • TLS অ্যাক্সেস চালু করা

আরও জানতে ক্লাউডের জন্য ভার্চুয়াল হোস্ট কনফিগার করা দেখুন।

প্রাইভেট ক্লাউডের জন্য Edge-এ হোস্টের ছদ্মনাম ও DNS নাম

ক্লাউডের জন্য Edge-এর মতো, আপনি ভার্চুয়াল হোস্ট তৈরি করেন যা হোস্ট উপনামের জন্য আপনার নিজস্ব ডোমেনের নাম ব্যবহার করে। তারপরে, সেইসব ভার্চুয়াল হোস্ট অ্যাক্সেস করার জন্য আপনি নিজের DNS এন্ট্রি ও CNAME রেকর্ড তৈরি করেন।

ক্লাউড ও প্রাইভেট ক্লাউডের মধ্যে একটি পার্থক্য হল, ক্লাউড Apigee-তে আপনার সংস্থার জন্য অটোমেটিক DNS নাম তৈরি হয়, যা এই ফর্ম্যাটে থাকে:

  • name=default: http://{org-name}-{env-name}.apigee.net (Router port 80)
  • name=secure: https://{org-name}-{env-name}.apigee.net (Router port 443)

প্রাইভেট ক্লাউডের জন্য Edge-এ, আপনাকে রাউটারের IP অ্যাড্রেস ও পোর্টের জন্য DNS এন্ট্রি তৈরি করতে হবে।

যেমন, আপনি ভার্চুয়াল হোস্টের সংজ্ঞায় এই তথ্য নির্দিষ্ট করেন:

  • name = myvhost
  • হোস্টের ছদ্মনাম = apis.acme.com
  • port = 9001
  • TLS অ্যাক্সেস চালু করা

Edge কীভাবে API অনুরোধ প্রসেস করে তার একটি সাধারণ কনফিগারেশন নিম্নলিখিত চিত্রে দেখানো হয়েছে:

এই উদাহরণে:

  • api.acme.com হল আপনার পছন্দের ডোমেন নাম।
  • আপনি রাউটারের IP অ্যাড্রেস ও পোর্টে api.acme.com পয়েন্ট করার জন্য একটি DNS এন্ট্রি ও CNAME রেকর্ড নির্ধারণ করেন।
  • অনুরোধে Host হেডার থাকে যা রাউটার ব্যবহার করে ভার্চুয়াল হোস্ট নির্ধারণ করে যা অনুরোধটি ম্যানেজ করে।

আরও জানতে প্রাইভেট ক্লাউডের জন্য ভার্চুয়াল হোস্ট কনফিগার করা দেখুন।

হোস্ট অ্যালিয়াস ও ওয়াইল্ডকার্ড

আপনি হোস্টের ছদ্মনামে "*" ওয়াইল্ডকার্ড অক্ষর যোগ করতে পারবেন। "*" ওয়াইল্ডকার্ড অক্ষরটি শুধুমাত্র হোস্ট অ্যালিয়াসের শুরুতে (প্রথম "."-এর আগে) থাকতে পারে এবং অন্য অক্ষরের সাথে মিশিয়ে ব্যবহার করা যাবে না।

ওয়াইল্ডকার্ড ব্যবহার করে সঠিক হোস্ট অ্যালিয়াসের একটি উদাহরণ নিচে দেওয়া হল:

*.example.com

নিম্নলিখিত উদাহরণগুলি অবৈধ:

  www.*.example.com
  w*.example.com

ভার্চুয়াল হোস্টের ছদ্মনামে ওয়াইল্ডকার্ড ব্যবহার করলে API প্রক্সি, একাধিক সাবডোমেনে অ্যাড্রেস করা কল ম্যানেজ করতে পারে, যেমন alpha.example.com, beta.example.com অথবা live.example.com. এছাড়াও, ওয়াইল্ডকার্ড এলিয়াস ব্যবহার করলে, প্রোডাক্ট সীমার মধ্যে থাকার জন্য আপনাকে প্রতিটি এনভায়রনমেন্টে কম ভার্চুয়াল হোস্ট ব্যবহার করতে সাহায্য করে, কারণ ওয়াইল্ডকার্ড সহ ভার্চুয়াল হোস্টকে শুধুমাত্র একটি ভার্চুয়াল হোস্ট হিসেবে গণনা করা হয়।

ভার্চুয়াল হোস্টের TLS cert-এর CN নামের মধ্যে অবশ্যই ম্যাচ করা ওয়াইল্ডকার্ড থাকতে হবে। যেমন, *.example.com

ভার্চুয়াল হোস্ট প্রপার্টি সম্পর্কে

Edge-এ, ভার্চুয়াল হোস্টকে একটি XML অবজেক্টের মাধ্যমে উপস্থাপন করা হয়। যেমন, নিচে দেওয়া XML অবজেক্ট একটি ভার্চুয়াল হোস্টকে সংজ্ঞায়িত করে:

<VirtualHost name="vhostName">
    <HostAliases>
        <HostAlias>hostAlias</HostAlias>
    </HostAliases>
    <Interfaces>
        <!-- Private Cloud only -->
        <Interface>interfaceName</Interface>
    <Port>portNumber</Port>
    <BaseURL>http://myCo.com<</BaseUrl>
    <OCSPStapling>off</OCSPStapling>
    <RetryOptions/>
   <SSLInfo>
        <Enabled>trueFalse</Enabled>
        <ClientAuthEnabled>trueFalse</ClientAuthEnabled>
        <KeyStore>ref://keystoreRef</KeyStore>
        <KeyAlias>keyAlias</KeyAlias>
        <TrustStore>ref://truststoreRef</TrustStore>
        <IgnoreValidationErrors>trueFalse</IgnoreValidationErrors>
    </SSLInfo>
    <Properties>
        <Property name="proxy_read_timeout">timeout</Property>
        <Property name="keepalive_timeout">timeout</Property>
        <Property name="proxy_request_buffering">onOff</Property>
        <Property name="proxy_buffering">onOff</Property>
        <Property name="ssl_protocols">protocolList</Property>
        <Property name="ssl_ciphers">cipherList</Property>
    </Properties>
</VirtualHost>

আপনি Edge for the Cloud অথবা Edge for the Private Cloud ব্যবহার করছেন কিনা তার উপর ভিত্তি করে আপনি যে প্রপার্টির তালিকা সেট করতে পারবেন তা নির্ভর করে। আপনি ব্যক্তিগত ক্লাউডের জন্য Edge ব্যবহার করলে, উপলভ্য প্রপার্টির তালিকাও আপনার Edge-এর ভার্সনের উপর নির্ভর করে। ভার্চুয়াল হোস্টের সব প্রপার্টির সম্পূর্ণ বিবরণ পেতে, দেখুন ভার্চুয়াল হোস্ট প্রপার্টি রেফারেন্স।

Edge-এর নির্দিষ্ট ভার্সনের জন্য ভার্চুয়াল হোস্ট তৈরি করা সম্পর্কে আরও জানতে, এগুলি দেখুন: