আপনি 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>
টার্গেটএন্ডপয়েন্ট পরিবহন সম্পত্তি স্পেসিফিকেশন
সম্পত্তির নাম | ডিফল্ট মান | বর্ণনা |
---|---|---|
keepalive.timeout.millis | 60000 | সংযোগ পুলে লক্ষ্য সংযোগের জন্য সংযোগ নিষ্ক্রিয় সময়সীমা। যদি পুলের সংযোগটি নির্দিষ্ট সীমার বাইরে নিষ্ক্রিয় থাকে, তাহলে সংযোগটি বন্ধ হয়ে যায়। |
connect.timeout.millis | | টার্গেট কানেকশন টাইমআউট। সংযোগের সময় শেষ হলে এজ একটি HTTP |
io.timeout.millis | 55000 | যদি নির্দিষ্ট সংখ্যক মিলিসেকেন্ডের জন্য পড়ার জন্য কোনও ডেটা না থাকে, বা যদি সকেটটি নির্দিষ্ট সংখ্যক মিলিসেকেন্ডের জন্য ডেটা লেখার জন্য প্রস্তুত না হয়, তাহলে লেনদেনটি একটি সময়সীমা হিসাবে বিবেচিত হয়।
এই মানটি সবসময় ভার্চুয়াল হোস্টের proxy_read_timeout প্রপার্টির মানের থেকে ছোট হওয়া উচিত। এই মানটি বার্তা প্রসেসরের সাথে যোগাযোগের জন্য রাউটার দ্বারা ব্যবহৃত টাইমআউটের চেয়ে কম হওয়া উচিত। আরও জানতে রাউটার টাইমআউট কনফিগার করা দেখুন। আরও জানতে এজ এর জন্য io.timeout.millis এবং api.timeout সেটিং দেখুন। |
supports.http10 | true | যদি এটি true হয় এবং ক্লায়েন্ট একটি 1.0 অনুরোধ পাঠায়, লক্ষ্যটিও একটি 1.0 অনুরোধ পাঠানো হয়। অন্যথায় 1.1 অনুরোধ টার্গেট পাঠানো হয়. |
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 | N/A | নির্দিষ্ট HTTP পদ্ধতির জন্য, আউটবাউন্ড অনুরোধে একটি X-HTTP-Method-Override হেডার সেট করে। যেমন, <Property name="GET.override.method">POST</Property> |
request.streaming.enabled | false | ডিফল্টরূপে ( |
response.streaming.enabled | false | ডিফল্টরূপে ( |
success.codes | N/A | ডিফল্টরূপে, Apigee Edge HTTP কোড এই সম্পত্তি সেট করা ডিফল্ট মান ওভাররাইট করে। অতএব, আপনি যদি ডিফল্ট সাফল্য কোডের তালিকায় HTTP কোড <Property name="success.codes">1XX,2XX,3XX,400</Property> আপনি যদি শুধুমাত্র HTTP কোড <Property name="success.codes">400</Property> HTTP কোড |
compression.algorithm | N/A | ডিফল্টরূপে, Apigee Edge ক্লায়েন্ট অনুরোধের মতো একই কম্প্রেশন টাইপ ব্যবহার করে লক্ষ্যে অনুরোধ পাঠায়। যদি ক্লায়েন্টের কাছ থেকে অনুরোধটি গৃহীত হয়, উদাহরণস্বরূপ, gzip কম্প্রেশন, তাহলে Apigee Edge জিজিপ কম্প্রেশন ব্যবহার করে লক্ষ্য করার অনুরোধটি ফরোয়ার্ড করে। যদি লক্ষ্য থেকে প্রাপ্ত প্রতিক্রিয়া ডিফ্লেট ব্যবহার করে, তাহলে Apigee Edge ডিফ্লেট ব্যবহার করে ক্লায়েন্টের কাছে প্রতিক্রিয়া ফরওয়ার্ড করে। সমর্থিত মান হল:
আরও দেখুন: Apigee কি GZIP/deflate কম্প্রেশনের সাথে কম্প্রেশন/ডি-কম্প্রেশন সমর্থন করে? |
request.retain.headers. | true | ডিফল্টরূপে, Apigee Edge সর্বদা আউটবাউন্ড বার্তাগুলিতে সমস্ত HTTP শিরোনাম ধরে রাখে। true সেট করা হলে, অন্তর্মুখী অনুরোধে উপস্থিত সমস্ত HTTP শিরোনাম আউটবাউন্ড অনুরোধে সেট করা হয়। |
request.retain.headers | N/A | অনুরোধ থেকে নির্দিষ্ট 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 শিরোনামগুলি প্রক্সিএন্ডপয়েন্টে পাস করার আগে আউটবাউন্ড প্রতিক্রিয়াতে সেট করা হয়। |
response.retain.headers | N/A | প্রক্সিএন্ডপয়েন্টে পাস করার আগে আউটবাউন্ড প্রতিক্রিয়াতে যে প্রতিক্রিয়া সেট করা উচিত তা থেকে নির্দিষ্ট HTTP শিরোনামগুলিকে সংজ্ঞায়িত করে৷ উদাহরণস্বরূপ, Expires শিরোনাম পাসথ্রু করতে, Expires এ response.retain.headers এর মান সেট করুন। একাধিক HTTP শিরোনাম একটি কমা দ্বারা পৃথক করা তালিকা হিসাবে নির্দিষ্ট করা হয়, উদাহরণস্বরূপ, Expires,Set-Cookie । এই সম্পত্তি response.retain.headers.enabled ওভাররাইড করে। response.retain.headers.enabled false সেট করা থাকলে, response.retain.headers প্রপার্টিতে নির্দিষ্ট করা যেকোনো হেডার এখনও আউটবাউন্ড মেসেজে সেট করা থাকে। |
retain.queryparams. | true | ডিফল্টরূপে, Apigee Edge সর্বদা আউটবাউন্ড অনুরোধে সমস্ত ক্যোয়ারী প্যারামিটার ধরে রাখে। true সেট করা হলে, অন্তর্মুখী অনুরোধে উপস্থিত সমস্ত ক্যোয়ারী পরামিতি লক্ষ্য পরিষেবার আউটবাউন্ড অনুরোধে সেট করা হয়। |
retain.queryparams | N/A | আউটবাউন্ড অনুরোধে সেট করার জন্য নির্দিষ্ট ক্যোয়ারী প্যারামিটার সংজ্ঞায়িত করে। উদাহরণস্বরূপ, অনুরোধ বার্তা থেকে ক্যোয়ারী প্যারামিটার apikey অন্তর্ভুক্ত করতে, retain.queryparams সেট করুন apikey তে। একাধিক ক্যোয়ারী প্যারামিটার একটি কমা দ্বারা পৃথক করা তালিকা হিসাবে নির্দিষ্ট করা হয়েছে, উদাহরণস্বরূপ, apikey,environment । এই সম্পত্তি retain.queryparams.enabled ওভাররাইড করে। |
প্রক্সিএন্ডপয়েন্ট পরিবহন বৈশিষ্ট্য
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>
ভার্চুয়াল হোস্ট সম্পর্কে আরও জানতে, ভার্চুয়াল হোস্ট সম্পর্কে দেখুন।
প্রক্সিএন্ডপয়েন্ট পরিবহন সম্পত্তি স্পেসিফিকেশন
সম্পত্তির নাম | ডিফল্ট মান | বর্ণনা |
---|---|---|
X-Forwarded-For | false | true সেট করা হলে, ভার্চুয়াল হোস্টের আইপি ঠিকানাটি HTTP X-Forwarded-For হেডারের মান হিসাবে আউটবাউন্ড অনুরোধে যোগ করা হয়। |
request.streaming. | false | ডিফল্টরূপে ( false ) , HTTP অনুরোধের পেলোডগুলিকে একটি বাফারে পড়া হয়, এবং নীতিগুলি যেগুলি প্রত্যাশিত হিসাবে পেলোড কাজ করতে পারে৷ যে ক্ষেত্রে পেলোডগুলি বাফারের আকারের (10 এমবি) থেকে বড়, আপনি এই বৈশিষ্ট্যটি true সেট করতে পারেন। true হলে, HTTP অনুরোধের পেলোডগুলি একটি বাফারে পড়া হয় না; সেগুলি টার্গেটএন্ডপয়েন্ট অনুরোধের প্রবাহের মতো স্ট্রিম করা হয়। এই ক্ষেত্রে, প্রক্সিএন্ডপয়েন্ট অনুরোধের প্রবাহে পেলোডে কাজ করে এমন যেকোনো নীতি বাইপাস করা হয়। এছাড়াও স্ট্রিমিং অনুরোধ এবং প্রতিক্রিয়া দেখুন। |
response.streaming. | false | ডিফল্টরূপে ( false ), HTTP প্রতিক্রিয়া পেলোডগুলি একটি বাফারে পড়া হয়, এবং নীতিগুলি যেগুলি প্রত্যাশিত হিসাবে পেলোডের কাজ করতে পারে৷ যে ক্ষেত্রে পেলোডগুলি বাফারের আকারের (10 এমবি) থেকে বড়, আপনি এই বৈশিষ্ট্যটি true সেট করতে পারেন। true হলে, HTTP প্রতিক্রিয়া পেলোডগুলি একটি বাফারে পড়া হয় না; সেগুলি ক্লায়েন্টের মতোই প্রবাহিত হয়৷ এই ক্ষেত্রে, প্রক্সিএন্ডপয়েন্ট রেসপন্স ফ্লোতে পেলোডে কাজ করে এমন যেকোনো নীতি বাইপাস করা হয়। এছাড়াও স্ট্রিমিং অনুরোধ এবং প্রতিক্রিয়া দেখুন। |
compression.algorithm | N/A | ডিফল্টরূপে, Apigee Edge প্রাপ্ত যেকোনো বার্তার জন্য কম্প্রেশন প্রকার সেটকে সম্মান করে। উদাহরণস্বরূপ, যেখানে একটি ক্লায়েন্ট একটি অনুরোধ জমা দেয় যা gzip কম্প্রেশন ব্যবহার করে, Apigee Edge জিজিপ কম্প্রেশন ব্যবহার করে লক্ষ্য করার অনুরোধটি ফরোয়ার্ড করে। টার্গেটএন্ডপয়েন্ট বা প্রক্সিএন্ডপয়েন্টে এই সম্পত্তি সেট করে আপনি স্পষ্টভাবে প্রয়োগ করার জন্য কম্প্রেশন অ্যালগরিদম কনফিগার করতে পারেন। সমর্থিত মান হল:
আরও দেখুন: Apigee কি GZIP/deflate কম্প্রেশনের সাথে কম্প্রেশন/ডি-কম্প্রেশন সমর্থন করে? |
api.timeout | N/A | পৃথক API প্রক্সিগুলির জন্য সময়সীমা কনফিগার করুন
আপনি একটি পরিবর্তনশীল সঙ্গে এই সম্পত্তি সেট করতে পারবেন না. যে গ্রাহকরা এজ টাইমআউটগুলি সংশোধন করতে পারেন না তারা একটি API প্রক্সি টাইমআউট কনফিগার করতে পারেন, যতক্ষণ না টাইমআউটটি 57 সেকেন্ডের স্ট্যান্ডার্ড এজ মেসেজ প্রসেসরের টাইমআউটের চেয়ে কম হয়৷ আরও জানতে এজ এর জন্য io.timeout.millis এবং api.timeout সেটিং দেখুন। |
এজ এর জন্য io.timeout.millis এবং api.timeout সেট করা হচ্ছে
এজে, io.timeout.millis
এবং api.timeout
এর অপারেশন সম্পর্কিত। একটি API প্রক্সির প্রতি অনুরোধে:
- রাউটার তার টাইমআউট মান মেসেজ প্রসেসরে পাঠায়। রাউটার টাইমআউট মান হল ভার্চুয়াল হোস্ট দ্বারা সেট করা
proxy_read_timeout
এর মান যা অনুরোধ পরিচালনা করে, অথবা 57 সেকেন্ডের ডিফল্ট টাইমআউট মান। - বার্তা প্রসেসর তারপর
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
কে সেই মান সেট করে।- এইচটিটিপি রিকোয়েস্ট লেখার সময় যদি টাইমআউট হয়,
408, Request Timeout
ফেরত দেওয়া হয়। - HTTP প্রতিক্রিয়া পড়ার সময় যদি টাইমআউট হয়,
504, Gateway Timeout
ফেরত দেওয়া হয়।
- এইচটিটিপি রিকোয়েস্ট লেখার সময় যদি টাইমআউট হয়,
Node.js অ্যাপ্লিকেশনের জন্য ScriptTarget সম্পর্কে
ScriptTarget উপাদানটি আপনার প্রক্সিতে একটি Node.js অ্যাপ্লিকেশন সংহত করতে ব্যবহৃত হয়। Node.js এবং ScriptTarget ব্যবহার সম্পর্কে তথ্যের জন্য, দেখুন:
হোস্টেড টার্গেট এন্ডপয়েন্ট সম্পর্কে
একটি খালি <HostedTarget/>
ট্যাগ এজকে তার লক্ষ্য হিসাবে একটি Node.js অ্যাপ্লিকেশন ব্যবহার করতে বলে যা হোস্টেড টার্গেট পরিবেশে স্থাপন করা হয়। বিস্তারিত জানার জন্য, হোস্টেড টার্গেট ওভারভিউ দেখুন।