درحال مشاهده اسناد Apigee Edge هستید.
به
اسناد Apigee X بروید. اطلاعات
این موضوع داراییهای انتقال را که میتوان در پیکربندیهای TargetEndpoint و ProxyEndpoint تنظیم کرد تا رفتار پیامرسانی و اتصال را کنترل کند توصیف میکند. برای پوشش کامل پیکربندی TargetEndpoint و ProxyEndpoint، به مرجع پیکربندی پراکسی API مراجعه کنید.
خصوصیتهای انتقال TargetEndpoint
عنصر HTTPTargetConnection در پیکربندیهای TargetEndpoint مجموعهای از ویژگیهای انتقال 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 میزبان مجازی باشد. این مقدار باید کمتر از زمان اتمام استفادهشده توسط «مسیریاب» برای ارتباط با «پردازشگر پیام» باشد. برای اطلاعات بیشتر، پیکربندی زمان اتمام روتر را ببینید. برای اطلاعات بیشتر، به تنظیم io.timeout.millis و api.timeout برای Edge مراجعه کنید. |
supports.http10 |
true |
اگر این true باشد و کارخواه درخواست ۱.۰ ارسال کند، درخواست ۱.۰ نیز به هدف ارسال میشود. درغیراینصورت، درخواست ۱.۱ به هدف ارسال میشود. |
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> با تنظیم کد HTTP |
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 |
موجود نیست | سرصفحههای اچتیتیپیاس خاصی را از درخواست تعریف میکند که باید در درخواست خروجی
برای سرویس هدف تنظیم شود. برای مثال، برای گذردهی سرصفحه 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 خاصی را از پاسخ تعریف میکند که باید در پاسخ خروجی قبلاز اینکه به ProxyEndpoint ارسال شود تنظیم شود. برای مثال، برای گذر دادن سرصفحه
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 |
موجود نیست |
پیکربندی زمان اتمام برای پراکسیهای میانای برنامهسازی کاربردی مجزا میتوانید پراکسیهای میانای برنامهسازی کاربردی، حتی آنهایی که جاریسازی در آنها فعال است، را پیکربندی کنید تا پساز مدت زمان مشخصی با وضعیت
نمیتوانید این دارایی را با متغیر تنظیم کنید. مشتریانی که نمیتوانند زمانهای اتمام Edge را تغییر دهند، میتوانند زمان اتمام کارگزار API را نیز پیکربندی کنند، بهشرطی که زمان اتمام کوتاهتر از زمان اتمام استاندارد پردازشگر پیام Edge (۵۷ ثانیه) باشد. برای اطلاعات بیشتر، به تنظیم io.timeout.millis و api.timeout برای Edge مراجعه کنید. |
تنظیم io.timeout.millis و api.timeout برای Edge
در 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، زمان اتمام فرا برسد،
درباره ScriptTarget برای برنامههای Node.js
از عنصر ScriptTarget برای ادغام برنامه Node.js در پراکسی استفاده میشود. برای اطلاعات درباره استفاده از Node.js و ScriptTarget، به این موارد مراجعه کنید:
درباره نقطههای پایانی HostedTarget
برچسب <HostedTarget/> خالی به Edge میگوید که از برنامه Node.js
که در محیط «هدفهای میزبانیشده» مستقر شده است بهعنوان هدف خود استفاده کند. برای جزئیات بیشتر،
نمای کلی «هدفهای میزبانیشده» را ببینید.