شما در حال مشاهده اسناد 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 باشد و مشتری یک درخواست 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 درخواست را با استفاده از فشردهسازی gzip به هدف ارسال میکند. اگر پاسخ دریافت شده از هدف از deflate استفاده می کند، Apigee Edge پاسخ را با استفاده از deflate به مشتری ارسال می کند. مقادیر پشتیبانی شده عبارتند از:
همچنین ببینید: آیا 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 موجود در پاسخ ورودی از سرویس هدف، قبل از ارسال به ProxyEndpoint روی پاسخ خروجی تنظیم میشوند. |
response.retain.headers | N/A | هدرهای 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 | N/A | پارامترهای پرس و جوی خاصی را برای تنظیم در درخواست خروجی تعریف می کند. به عنوان مثال، برای گنجاندن پارامتر query apikey از پیام درخواست، retain.queryparams روی apikey تنظیم کنید. چندین پارامتر پرس و جو به عنوان یک لیست جدا شده با کاما مشخص می شوند، به عنوان مثال، apikey,environment . این ویژگی retain.queryparams.enabled را لغو می کند. |
ویژگی های انتقال ProxyEndpoint
عناصر ProxyEndpoint HTTPTargetConnection مجموعه ای از ویژگی های انتقال HTTP را تعریف می کنند. این ویژگی ها را می توان برای تنظیم پیکربندی های سطح انتقال استفاده کرد.
ویژگی ها بر روی عناصر ProxyEndpoint HTTPPproxyConnection به صورت زیر تنظیم می شوند:
<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 در یک بافر خوانده میشوند، و خطمشیهایی که میتوانند بر روی بارگذاری کار کنند، همانطور که انتظار میرود کار میکنند. در مواردی که محموله ها بزرگتر از اندازه بافر (10 مگابایت) هستند، می توانید این ویژگی را روی true تنظیم کنید. وقتی true ، بارهای درخواستی HTTP در بافر خوانده نمیشوند. آنها همانطور که هست به جریان درخواست TargetEndpoint پخش می شوند. در این مورد، هر خط مشیهایی که روی بار در جریان درخواست ProxyEndpoint عمل میکنند دور زده میشوند. همچنین به جریان درخواست ها و پاسخ ها مراجعه کنید. |
response.streaming. | false | بهطور پیشفرض ( false )، بارهای پاسخ HTTP در یک بافر خوانده میشوند و خطمشیهایی که میتوانند بر روی بارگذاری کار کنند، همانطور که انتظار میرود کار میکنند. در مواردی که محموله ها بزرگتر از اندازه بافر (10 مگابایت) هستند، می توانید این ویژگی را روی true تنظیم کنید. وقتی true ، بارهای پاسخ HTTP در بافر خوانده نمیشوند. آنها همانطور که هست برای مشتری پخش می شوند. در این حالت، هر خطمشی که بر روی بار در جریان پاسخ ProxyEndpoint عمل میکند دور زده میشود. همچنین به جریان درخواست ها و پاسخ ها مراجعه کنید. |
compression.algorithm | N/A | بهطور پیشفرض، Apigee Edge نوع فشردهسازی را برای هر پیام دریافتی تعیین میکند. به عنوان مثال، جایی که یک کلاینت درخواستی را ارسال می کند که از فشرده سازی gzip استفاده می کند، Apigee Edge درخواست را با استفاده از فشرده سازی gzip به هدف قرار می دهد. میتوانید با تنظیم این ویژگی در TargetEndpoint یا ProxyEndpoint، الگوریتمهای فشردهسازی را طوری پیکربندی کنید که صریحاً اعمال شوند. مقادیر پشتیبانی شده عبارتند از:
همچنین ببینید: آیا Apigee از فشردهسازی/فشردهسازی با فشردهسازی GZIP/deflate پشتیبانی میکند؟ |
api.timeout | N/A | مهلت زمانی را برای تک تک پراکسی های API پیکربندی کنید میتوانید پروکسیهای API را پیکربندی کنید، حتی آنهایی که پخش جریانی را فعال کردهاند، تا پس از مدت زمان مشخصی با وضعیت
شما نمی توانید این ویژگی را با یک متغیر تنظیم کنید. مشتریانی که نمیتوانند مهلتهای زمانی Edge را تغییر دهند، میتوانند یک مهلت زمانی پروکسی API را نیز پیکربندی کنند، البته تا زمانی که مهلت زمانی کوتاهتر از مهلت زمانی استاندارد پردازشگر پیام Edge 57 ثانیه باشد. برای اطلاعات بیشتر به تنظیمات io.timeout.millis و api.timeout برای Edge مراجعه کنید. |
تنظیم io.timeout.millis و api.timeout برای Edge
در Edge، عملکرد io.timeout.millis
و api.timeout
مرتبط هستند. در هر درخواست به یک پروکسی API:
- روتر مقدار زمان وقفه خود را به پردازشگر پیام ارسال می کند. مقدار تایماوت روتر یا مقدار
proxy_read_timeout
است که توسط میزبان مجازی که درخواست را مدیریت میکند، تنظیم شده است، یا مقدار وقفه پیشفرض 57 ثانیه است. - سپس پردازشگر پیام
api.timeout
را تنظیم می کند:- اگر
api.timeout
در سطح پروکسی تنظیم نشده است، آن را روی مهلت روتر تنظیم کنید. - اگر
api.timeout
در سطح پراکسی تنظیم شده است، آن را روی Message Processor روی کمتر از زمان پایان مسیر یا مقدار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 که در محیط Hosted Targets مستقر شده است به عنوان هدف خود استفاده کند. برای جزئیات، به نمای کلی اهداف میزبانی شده مراجعه کنید.