আপনি Apigee Edge ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশন দেখুন। তথ্য
এই বিষয়ে, মেসেজিং ও কানেকশন আচরণ নিয়ন্ত্রণ করতে TargetEndpoint ও ProxyEndpoint কনফিগারেশনে সেট করা যায় এমন ট্রান্সপোর্ট প্রপার্টি বর্ণনা করা হয়েছে। TargetEndpoint এবং ProxyEndpoint কনফিগারেশনের সম্পূর্ণ কভারেজের জন্য, API প্রক্সি কনফিগারেশন রেফারেন্স দেখুন।
TargetEndpoint ট্রান্সপোর্ট প্রপার্টি
TargetEndpoint কনফিগারেশনে HTTPTargetConnection এলিমেন্ট, HTTP ট্রান্সপোর্ট প্রপার্টির একটি সেটকে সংজ্ঞায়িত করে। ট্রান্সপোর্ট-লেভেল কনফিগারেশন সেট করতে আপনি এইসব প্রপার্টি ব্যবহার করতে পারবেন।
নিচে দেখানো হয়েছে সেইভাবে TargetEndpoint HTTPTargetConnection এলিমেন্টে প্রপার্টি সেট করা হয়:
<TargetEndpoint name="default">
<HTTPTargetConnection>
<URL>http://mocktarget.apigee.net</URL>
<Properties>
<Property name="supports.http10">true</Property>
<Property name="request.retain.headers">User-Agent,Referer,Accept-Language</Property>
<Property name="retain.queryparams">apikey</Property>
</Properties>
<CommonName>COMMON_NAME_HERE</CommonName>
</HTTPTargetConnection>
</TargetEndpoint>TargetEndpoint ট্রান্সপোর্ট প্রপার্টি স্পেসিফিকেশন
| প্রপার্টির নাম | ডিফল্ট ভ্যালু | বিবরণ |
|---|---|---|
keepalive.timeout.millis |
60000 |
কানেকশন পুলে টার্গেট কানেকশনের জন্য কানেকশন আইডল টাইমআউট। পুল থেকে কানেকশন নির্দিষ্ট সীমার বেশি সময় ধরে নিষ্ক্রিয় থাকলে, কানেকশনটি বন্ধ করে দেওয়া হয়। |
connect.timeout.millis |
|
টার্গেট কানেকশন টাইম-আউট। কানেকশন
টাইম-আউট হয়ে গেলে Edge একটি HTTP |
io.timeout.millis |
55000 |
নির্দিষ্ট সংখ্যক মিলিসেকেন্ডের জন্য রিড করার মতো কোনও ডেটা না থাকলে অথবা সকেট নির্দিষ্ট সংখ্যক মিলিসেকেন্ডের জন্য ডেটা লেখার জন্য রেডি না থাকলে, ট্রানজ্যাকশনকে টাইম-আউট হিসেবে গণ্য করা হয়।
এই ভ্যালু সবসময় ভার্চুয়াল হোস্টের proxy_read_timeout প্রপার্টির ভ্যালুর চেয়ে ছোট হতে হবে। এই ভ্যালু মেসেজ প্রসেসরের সাথে যোগাযোগ করার জন্য রাউটার দ্বারা ব্যবহৃত টাইমআউটের চেয়ে কম হতে হবে। আরও জানতে রাউটার টাইম-আউট কনফিগার করা দেখুন। আরও জানতে Edge-এর জন্য io.timeout.millis এবং api.timeout সেট করা দেখুন। |
supports.http10 |
true |
এটি true হলে এবং ক্লায়েন্ট 1.0 অনুরোধ পাঠালে, টার্গেটকেও 1.0
অনুরোধ পাঠানো হয়। অন্যথায়, টার্গেটে ১.১ অনুরোধ পাঠানো হয়। |
supports.http11 |
true |
এটি true হলে এবং ক্লায়েন্ট 1.1 অনুরোধ পাঠালে, টার্গেটেও 1.1
অনুরোধ পাঠানো হয়, অন্যথায় টার্গেটে 1.0 অনুরোধ পাঠানো হয়। |
use.proxy |
true |
true-এ সেট করা থাকলে এবং
http.properties-এ প্রক্সি কনফিগারেশন নির্দিষ্ট করা থাকলে (শুধুমাত্র অন-প্রিমিজেস ডেপ্লয়মেন্টের ক্ষেত্রে), টার্গেট কানেকশন
নির্দিষ্ট করা প্রক্সি ব্যবহার করার জন্য সেট করা হয়। |
use.proxy.tunneling |
true |
এটি true হিসেবে সেট করা থাকলে এবং
http.properties-এ প্রক্সি কনফিগারেশন নির্দিষ্ট করা থাকলে (শুধুমাত্র অন-প্রিমিজেস ডেপ্লয়মেন্টের ক্ষেত্রে), তাহলে টার্গেট
কানেকশন নির্দিষ্ট টানেল ব্যবহার করার জন্য সেট করা হয়। টার্গেট TLS/SSL ব্যবহার করলে, এই
প্রপার্টি উপেক্ষা করা হয় এবং মেসেজ সবসময় টানেলের মাধ্যমে পাঠানো হয়। |
enable.method.override |
false |
নির্দিষ্ট HTTP পদ্ধতির জন্য, টার্গেট পরিষেবায় পাঠানো আউটবাউন্ড অনুরোধে
X-HTTP-Method-Override হেডার সেট করে। যেমন, <Property
name="GET.override.method">POST</Property> |
*.override.method |
প্রযোজ্য নয় | উল্লিখিত HTTP পদ্ধতির জন্য, আউটবাউন্ড অনুরোধে একটি X-HTTP-Method-Override হেডার সেট করে।
যেমন, <Property
name="GET.override.method">POST</Property> |
request.streaming.enabled |
false |
ডিফল্ট হিসেবে ( |
response.streaming.enabled |
false |
ডিফল্ট হিসেবে ( |
success.codes |
প্রযোজ্য নয় |
সাধারণত, Apigee Edge HTTP কোড এই প্রপার্টি সেট করলে ডিফল্ট ভ্যালু ওভাররাইট হয়ে যায়। তাই, আপনি যদি ডিফল্ট সাকসেস কোডের তালিকায়
HTTP কোড <Property name="success.codes">1XX,2XX,3XX,400</Property> আপনি যদি চান যে শুধুমাত্র HTTP কোড <Property name="success.codes">400</Property> শুধুমাত্র |
compression.algorithm |
প্রযোজ্য নয় |
ডিফল্ট হিসেবে, Apigee Edge ক্লায়েন্টের অনুরোধের মতো একই কম্প্রেশন টাইপ ব্যবহার করে টার্গেটে অনুরোধ ফরওয়ার্ড করে।
যদি ক্লায়েন্টের থেকে gzip
কম্প্রেশন ব্যবহার করে অনুরোধ আসে, তাহলে Apigee Edge gzip কম্প্রেশন ব্যবহার করে টার্গেটে অনুরোধ ফরওয়ার্ড করে। টার্গেট থেকে পাওয়া
উত্তরে deflate ব্যবহার করা হলে, Apigee Edge সেই উত্তর deflate ব্যবহার করে
ক্লায়েন্টকে ফরওয়ার্ড করে। এইসব ভ্যালু ব্যবহার করা যাবে:
এছাড়াও দেখুন: Apigee কি GZIP/deflate কম্প্রেশন সহ কম্প্রেশন/ডিকম্প্রেশন সমর্থন করে? |
request.retain.headers. |
true |
ডিফল্ট হিসেবে, Apigee Edge সবসময় পাঠানো মেসেজে সব HTTP হেডার রেখে দেয়। true হিসেবে সেট করা হলে, ইনবাউন্ড অনুরোধে থাকা সব HTTP হেডার আউটবাউন্ড
অনুরোধে সেট করা হয়। |
request.retain.headers |
প্রযোজ্য নয় | অনুরোধ থেকে নির্দিষ্ট HTTP হেডারকে ডিফাইন করে যা টার্গেট পরিষেবায় আউটবাউন্ড
অনুরোধে সেট করা উচিত। যেমন, User-Agent
হেডার পাসথ্রু করতে, request.retain.headers-এর ভ্যালু User-Agent হিসেবে সেট করুন।
একাধিক HTTP হেডারকে কমা-দ্বারা আলাদা করা তালিকা হিসেবে নির্দিষ্ট করা হয়, যেমন,
User-Agent,Referer,Accept-Language। এই প্রপার্টি
request.retain.headers.enabled-কে ওভাররাইড করে। request.retain.headers.enabled
false-এ সেট করা থাকলে, আউটবাউন্ড মেসেজে
request.retain.headers প্রপার্টিতে উল্লেখ করা যেকোনও হেডার এখনও সেট করা আছে। |
response.retain.headers. |
true |
ডিফল্ট হিসেবে, Apigee Edge সবসময় পাঠানো মেসেজে সব HTTP হেডার রেখে দেয়। true-এ সেট করা হলে
টার্গেট
পরিষেবা থেকে আসা ইনবাউন্ড রেসপন্সে উপস্থিত সব HTTP হেডার, ProxyEndpoint-এ পাস করার আগে আউটবাউন্ড রেসপন্সে সেট করা হয়। |
response.retain.headers |
প্রযোজ্য নয় | প্রক্সিএন্ডপয়েন্টে পাঠানোর আগে আউটবাউন্ড
রেসপন্সে সেট করতে হবে এমন রেসপন্স থেকে নির্দিষ্ট HTTP হেডারকে সংজ্ঞায়িত করে। যেমন, Expires হেডার পাসথ্রু করতে, response.retain.headers-এর ভ্যালু
Expires হিসেবে সেট করুন। একাধিক HTTP হেডারকে কমা-দ্বারা আলাদা করা তালিকা হিসেবে নির্দিষ্ট করা হয়েছে, যেমন
Expires,Set-Cookie। এই প্রপার্টি
response.retain.headers.enabled-কে ওভাররাইড করে। response.retain.headers.enabled-এর মান false হিসেবে সেট করা থাকলে, response.retain.headers প্রপার্টিতে
উল্লেখ করা যেকোনও হেডার এখনও আউটবাউন্ড মেসেজে
সেট করা আছে। |
retain.queryparams. |
true |
ডিফল্ট হিসেবে, Apigee Edge সবসময় আউটবাউন্ড অনুরোধে সব কোয়েরি প্যারামিটার রেখে দেয়। true-এ সেট করা হলে, ইনবাউন্ড অনুরোধে উপস্থিত সমস্ত কোয়েরি প্যারামিটার টার্গেট
পরিষেবার আউটবাউন্ড অনুরোধে সেট করা হয়। |
retain.queryparams |
প্রযোজ্য নয় | আউটবাউন্ড অনুরোধে সেট করার জন্য নির্দিষ্ট কোয়েরি প্যারামিটার নির্ধারণ করে। যেমন, অনুরোধ মেসেজ থেকে
কোয়েরি প্যারামিটার apikey অন্তর্ভুক্ত করতে, retain.queryparams-এর মান
apikey হিসেবে সেট করুন। একাধিক কোয়েরি প্যারামিটারকে
কমা দিয়ে আলাদা করা তালিকার মাধ্যমে নির্দিষ্ট করা হয়, যেমন, apikey,environment। এই
প্রপার্টি retain.queryparams.enabled-কে ওভাররাইড করে। |
ProxyEndpoint ট্রান্সপোর্ট প্রপার্টি
ProxyEndpoint HTTPTargetConnection এলিমেন্ট, HTTP ট্রান্সপোর্ট প্রপার্টির একটি সেটকে সংজ্ঞায়িত করে। ট্রান্সপোর্ট-লেভেল কনফিগারেশন সেট করতে এইসব প্রপার্টি ব্যবহার করা যেতে পারে।
ProxyEndpoint HTTPProxyConnection এলিমেন্টে প্রপার্টি সেট করা হয়, যেমন:
<ProxyEndpoint name="default">
<HTTPProxyConnection>
<BasePath>/v1/weather</BasePath>
<Properties>
<Property name="request.streaming.enabled">true</Property>
</Properties>
<VirtualHost>default</VirtualHost>
<VirtualHost>secure</VirtualHost>
</HTTPProxyConnection>
</ProxyEndpoint>ভার্চুয়াল হোস্ট সম্পর্কে আরও জানতে, ভার্চুয়াল হোস্ট সম্পর্কে দেখুন।
ProxyEndpoint ট্রান্সপোর্ট প্রপার্টি স্পেসিফিকেশন
| প্রপার্টির নাম | ডিফল্ট ভ্যালু | বিবরণ |
|---|---|---|
X-Forwarded-For |
false |
true হিসেবে সেট করা হলে, ভার্চুয়াল হোস্টের IP অ্যাড্রেস আউটবাউন্ড অনুরোধে HTTP X-Forwarded-For হেডারের
ভ্যালু হিসেবে যোগ করা হয়। |
request.streaming. |
false |
ডিফল্ট হিসেবে (false), HTTP অনুরোধের পেলোড একটি বাফারে রিড করা হয় এবং পেলোডের উপর
অপারেট করতে পারে এমন নীতি প্রত্যাশিতভাবে কাজ করে। পে-লোড বাফার সাইজের (১০ এমবি) থেকে বড় হলে, আপনি এই
অ্যাট্রিবিউটকে true হিসেবে সেট করতে পারেন।
true হলে, HTTP অনুরোধ পেলোড বাফারে রিড করা হয় না; সেগুলি
TargetEndpoint অনুরোধ ফ্লোতে যেমন আছে তেমন স্ট্রিম করা হয়। এই ক্ষেত্রে, ProxyEndpoint অনুরোধ ফ্লোতে
পে-লোডে কাজ করে এমন যেকোনও নীতি বাইপাস করা হয়। এছাড়াও, স্ট্রিমিং সংক্রান্ত অনুরোধ ও উত্তর দেখুন। |
response.streaming. |
false |
ডিফল্ট হিসেবে (false), HTTP রেসপন্স পেলোড একটি বাফারে রিড করা হয় এবং পেলোডের উপর
অপারেট করতে পারে এমন নীতি প্রত্যাশিতভাবে কাজ করে। পে-লোড বাফার সাইজের (১০ এমবি) থেকে বড় হলে, আপনি এই
অ্যাট্রিবিউটকে true হিসেবে সেট করতে পারেন।
true হলে, HTTP রেসপন্স পেলোড বাফারে রিড করা হয় না; সেগুলি
ক্লায়েন্টকে যেমন আছে তেমনই স্ট্রিম করা হয়। এই ক্ষেত্রে, ProxyEndpoint রেসপন্স ফ্লোতে
পে-লোডে কাজ করে এমন যেকোনও নীতি বাইপাস করা হয়। এছাড়াও, স্ট্রিমিং সংক্রান্ত অনুরোধ ও উত্তর দেখুন। |
compression.algorithm |
প্রযোজ্য নয় |
ডিফল্ট হিসেবে, Apigee Edge, প্রাপ্ত যেকোনও মেসেজের জন্য সেট করা কম্প্রেশন ধরনকে সম্মান করে। যেমন, কোনও ক্লায়েন্ট gzip কম্প্রেশন ব্যবহার করে অনুরোধ জমা দিলে, Apigee Edge gzip কম্প্রেশন ব্যবহার করে টার্গেটে অনুরোধ ফরওয়ার্ড করে। TargetEndpoint বা ProxyEndpoint-এ এই প্রপার্টি সেট করে আপনি স্পষ্টভাবে প্রয়োগ করার জন্য কম্প্রেশন অ্যালগরিদম কনফিগার করতে পারবেন। এই মানগুলি ব্যবহার করা যাবে:
এছাড়াও দেখুন: Apigee কি GZIP/deflate কম্প্রেশন সহ কম্প্রেশন/ডিকম্প্রেশন সমর্থন করে? |
api.timeout |
প্রযোজ্য নয় |
আলাদা API প্রক্সির জন্য টাইম-আউট কনফিগার করা আপনি API প্রক্সি কনফিগার করতে পারবেন, এমনকি
আপনি কোনও ভেরিয়েবলের সাথে এই প্রপার্টি সেট করতে পারবেন না। যেসব গ্রাহক Edge টাইম-আউট পরিবর্তন করতে পারেন না, তারা API প্রক্সি টাইম-আউট কনফিগার করতে পারেন, তবে টাইম-আউট যেন স্ট্যান্ডার্ড Edge মেসেজ প্রসেসর টাইম-আউট, অর্থাৎ ৫৭ সেকেন্ডের থেকে কম হয়। আরও জানতে Edge-এর জন্য io.timeout.millis এবং api.timeout সেট করা দেখুন। |
Edge-এর জন্য io.timeout.millis এবং api.timeout সেট করা
Edge-এ, io.timeout.millis ও api.timeout
অপারেশন সম্পর্কিত।
API প্রক্সিতে করা প্রতিটি অনুরোধের ক্ষেত্রে:
- রাউটার, মেসেজ প্রসেসরকে এর টাইম-আউট ভ্যালু পাঠায়। রাউটার টাইমআউটের ভ্যালু হল
ভার্চুয়াল হোস্ট দ্বারা সেট করা
proxy_read_timeout-এর ভ্যালু যা অনুরোধ ম্যানেজ করে অথবা ডিফল্ট টাইমআউট ভ্যালু ৫৭ সেকেন্ড। - তারপরে মেসেজ প্রসেসর
api.timeoutসেট করে:- প্রক্সি লেভেলে
api.timeoutসেট করা না থাকলে, এটি রাউটার টাইম-আউটে সেট করুন। api.timeoutপ্রক্সি লেভেলে সেট করা থাকলে, মেসেজ প্রসেসরে এটিকে রাউটার টাইম-আউট বাapi.timeout-এর ভ্যালুর মধ্যে যেটি কম সেটিতে সেট করুন।
- প্রক্সি লেভেলে
api.timeout-এর ভ্যালু API অনুরোধ থেকে উত্তর পাওয়া পর্যন্ত API প্রক্সি এক্সিকিউট করার জন্য সর্বাধিক সময় নির্দিষ্ট করে।API প্রক্সি সার্ভারে প্রতিটি নীতি প্রয়োগ করার পরে, অথবা মেসেজ প্রসেসর টার্গেট এন্ডপয়েন্টে অনুরোধ পাঠানোর আগে, মেসেজ প্রসেসর গণনা করে (
api.timeout- অনুরোধ শুরু হওয়ার পর থেকে অতিবাহিত সময়)। ভ্যালু শূন্যের থেকে কম হলে, অনুরোধ হ্যান্ডেল করার জন্য সর্বাধিক সময়সীমা শেষ হয়ে গেছে এবং মেসেজ প্রসেসর504রিটার্ন করে।io.timeout.millis-এর ভ্যালু টার্গেট এন্ডপয়েন্টকে উত্তর দেওয়ার জন্য সর্বাধিক সময়সীমা নির্দিষ্ট করে।টার্গেট এন্ডপয়েন্টে কানেক্ট করার আগে, মেসেজ প্রসেসর নিম্নলিখিত দুটির মধ্যে যেটি ছোট সেটি নির্ধারণ করে: (
api.timeout- অনুরোধ শুরু হওয়ার পর থেকে কেটে যাওয়া সময়) এবংio.timeout.millis। তারপরে, এটিio.timeout.millis-কে সেই ভ্যালুতে সেট করে।- HTTP অনুরোধ লেখার সময় টাইম-আউট হয়ে গেলে,
408, Request Timeoutরিটার্ন করা হয়। - HTTP উত্তর পড়ার সময় টাইম-আউট হলে,
504, Gateway Timeoutরিটার্ন করা হয়।
- HTTP অনুরোধ লেখার সময় টাইম-আউট হয়ে গেলে,
Node.js অ্যাপ্লিকেশনের জন্য ScriptTarget সম্পর্কে
আপনার প্রক্সিতে Node.js অ্যাপ্লিকেশন ইন্টিগ্রেট করতে ScriptTarget এলিমেন্ট ব্যবহার করা হয়। Node.js ও ScriptTarget ব্যবহার করা সংক্রান্ত তথ্যের জন্য, এগুলি দেখুন:
HostedTarget এন্ডপয়েন্ট সম্পর্কে
খালি <HostedTarget/> ট্যাগ Edge-কে বলে যে এর টার্গেট হিসেবে Hosted Targets এনভায়রনমেন্টে ডেপ্লয় করা Node.js
অ্যাপ্লিকেশন ব্যবহার করতে হবে। আরও বিবরণের জন্য, হোস্ট করা টার্গেটের ওভারভিউ দেখুন।