شما در حال مشاهده اسناد Apigee Edge هستید.
به مستندات Apigee X بروید . اطلاعات
Edge Microgateway نسخه 2.4.x
نمای کلی
در این مبحث نحوه مدیریت و پیکربندی Edge Microgateway از جمله نظارت، ثبت و اشکالزدایی بحث میشود.
ایجاد تغییرات پیکربندی
فایل های پیکربندی که باید در مورد آنها بدانید عبارتند از:
- فایل پیکربندی پیش فرض سیستم
- فایل پیکربندی پیشفرض برای یک نمونه Edge Microgateway که به تازگی راهاندازی شده است
- فایل پیکربندی پویا برای نمونه های در حال اجرا
در این بخش درباره این فایل ها و آنچه باید در مورد تغییر آنها بدانید صحبت می شود. برای جزئیات در مورد تنظیمات فایل پیکربندی، به مرجع پیکربندی Edge Microgateway مراجعه کنید.
فایل پیکربندی پیش فرض سیستم
هنگامی که Edge Microgateway را نصب می کنید، یک فایل پیکربندی سیستم پیش فرض در اینجا قرار می گیرد:
[prefix]/lib/node_modules/edgemicro/config/default.yaml
جایی که [prefix] دایرکتوری پیشوند npm است. Edge Microgateway کجا نصب شده است را ببینید.
اگر فایل پیکربندی سیستم را تغییر دهید، باید Edge Microgateway را مجدداً راه اندازی کنید، پیکربندی مجدد و راه اندازی مجدد کنید:
-
edgemicro initرا فراخوانی کنید - فراخوانی
edgemicro configure [params] - فراخوانی
edgemicro start [params]
فایل پیکربندی پیشفرض برای نمونههای Edge Microgateway که به تازگی مقداردهی اولیه شدهاند
وقتی edgemicro init را اجرا می کنید، فایل پیکربندی سیستم (که در بالا توضیح داده شد)، default.yaml ، در این دایرکتوری قرار می گیرد: ~ /.edgemicro
اگر فایل پیکربندی را در ~ /.edgemicro تغییر دهید، باید Edge Microgateway را مجدداً پیکربندی و راه اندازی مجدد کنید:
-
edgemicro stop -
edgemicro configure[params] -
edgemicro start[params]
فایل پیکربندی پویا برای نمونه های در حال اجرا
هنگامی که edgemicro configure [params] را اجرا می کنید، یک فایل پیکربندی پویا در ~ /.edgemicro ایجاد می شود. نام فایل طبق این الگو است: [org]-[env]-config.yaml ، که در آن org و env نام سازمان و محیط Apigee Edge شما هستند. شما می توانید از این فایل برای ایجاد تغییرات پیکربندی استفاده کنید و سپس آنها را با زمان خالی صفر بارگیری مجدد کنید. برای مثال، اگر افزونهای را اضافه و پیکربندی کنید، میتوانید پیکربندی را بدون هیچ گونه خرابی بارگیری مجدد کنید، همانطور که در زیر توضیح داده شده است.
اگر Edge Microgateway در حال اجرا است (گزینه صفر توقف):
- بارگیری مجدد پیکربندی Edge Microgateway:
edgemicro reload -o [org] -e [env] -k [key] -s [secret]
کجا:
-
orgنام سازمان Edge شماست (شما باید یک مدیر سازمان باشید). -
envیک محیط در سازمان شما است (مانند test یا prod). -
keyهمان کلیدی است که قبلاً با دستور configure بازگردانده شده است. -
secretکلیدی است که قبلاً توسط دستور configure بازگردانده شده است.
مثال
edgemicro reload -o docs -e test -k 701e70ee718ce6dc188016b3c39177d64a88754d615c74e1f78b6181d000723 -s 05c14356e42ed136b8dd35cf8a18531ff52d7299134677e30ef4e34ab0cc824
-
اگر Edge Microgateway متوقف شود:
- راه اندازی مجدد Edge Microgateway:
edgemicro start -o [org] -e [env] -k [key] -s [secret]
کجا:
-
orgنام سازمان Edge شماست (شما باید یک مدیر سازمان باشید). -
envیک محیط در سازمان شما است (مانند test یا prod). -
keyهمان کلیدی است که قبلاً با دستور configure بازگردانده شده است. -
secretکلیدی است که قبلاً توسط دستور configure بازگردانده شده است.
مثال
edgemicro start -o docs -e test -k 701e70ee718ce6dc188016b3c39177d64a88754d615c74e1f78b6181d000723 -s 05c14356e42ed136b8dd35cf8a18531ff52d7299134677e30ef4e34ab0cc824
-
در اینجا یک فایل پیکربندی مثال است. برای جزئیات در مورد تنظیمات فایل پیکربندی، به مرجع پیکربندی Edge Microgateway مراجعه کنید.
edge_config: bootstrap: >- https://edgemicroservices-us-east-1.apigee.net/edgemicro/bootstrap/organization/docs/environment/test jwt_public_key: 'https://docs-test.apigee.net/edgemicro-auth/publicKey' managementUri: 'https://api.enterprise.apigee.com' vaultName: microgateway authUri: 'https://%s-%s.apigee.net/edgemicro-auth' baseUri: >- https://edgemicroservices.apigee.net/edgemicro/%s/organization/%s/environment/%s bootstrapMessage: Please copy the following property to the edge micro agent config keySecretMessage: The following credentials are required to start edge micro products: 'https://docs-test.apigee.net/edgemicro-auth/products' edgemicro: port: 8000 max_connections: 1000 max_connections_hard: 5000 config_change_poll_interval: 600 logging: level: error dir: /var/tmp stats_log_interval: 60 rotate_interval: 24 plugins: sequence: - oauth headers: x-forwarded-for: true x-forwarded-host: true x-request-id: true x-response-time: true via: true oauth: allowNoAuthorization: false allowInvalidAuthorization: false verify_api_key_url: 'https://docs-test.apigee.net/edgemicro-auth/verifyApiKey' analytics: uri: >- https://edgemicroservices-us-east-1.apigee.net/edgemicro/axpublisher/organization/docs/environment/test
تنظیم متغیرهای محیطی
دستورات رابط خط فرمان که به مقادیری برای سازمان و محیط Edge شما نیاز دارند، و کلید و راز مورد نیاز برای راه اندازی Edge Microgateway را می توان در این متغیرهای محیطی ذخیره کرد:
-
EDGEMICRO_ORG -
EDGEMICRO_ENV -
EDGEMICRO_KEY -
EDGEMICRO_SECRET
تنظیم این متغیرها اختیاری است. اگر آنها را تنظیم کنید، لازم نیست مقادیر آنها را هنگام استفاده از Command-Line Interface (CLI) برای پیکربندی و راه اندازی Edge Microgateway مشخص کنید.
پیکربندی SSL در سرور Edge Microgateway
شما می توانید سرور Microgateway را برای استفاده از SSL پیکربندی کنید. به عنوان مثال، با پیکربندی SSL، می توانید API ها را از طریق Edge Microgateway با پروتکل "https" فراخوانی کنید، مانند این:
https://localhost:8000/myapi
برای پیکربندی SSL در سرور Microgateway، مراحل زیر را دنبال کنید:
- با استفاده از ابزار openssl یا هر روشی که ترجیح می دهید، یک گواهی و کلید SSL ایجاد یا دریافت کنید.
- ویژگی
edgemicro:sslبه فایل پیکربندی Edge Microgateway اضافه کنید. برای لیست کامل گزینه ها، جدول زیر را ببینید. برای جزئیات در مورد تغییر پیکربندی Edge Microgateway، به ایجاد تغییرات پیکربندی مراجعه کنید. به عنوان مثال:edgemicro: ssl: key: <absolute path to the SSL key file> cert: <absolute path to the SSL cert file> passphrase: admin123 #option added in v2.2.2 rejectUnauthorized: true #option added in v2.2.2 requestCert: true - Edge Microgateway را مجددا راه اندازی کنید. بسته به اینکه کدام فایل پیکربندی را ویرایش کرده اید، مراحل ذکر شده در ایجاد تغییرات پیکربندی را دنبال کنید: فایل پیش فرض یا فایل پیکربندی زمان اجرا.
در اینجا نمونه ای از بخش edgemicro فایل پیکربندی با SSL پیکربندی شده است:
edgemicro: port: 8000 max_connections: 1000 max_connections_hard: 5000 logging: level: error dir: /var/tmp stats_log_interval: 60 rotate_interval: 24 plugins: sequence: - oauth ssl: key: /MyHome/SSL/em-ssl-keys/server.key cert: /MyHome/SSL/em-ssl-keys/server.crt passphrase: admin123 #option added in v2.2.2 rejectUnauthorized: true #option added in v2.2.2
در اینجا لیستی از تمام گزینه های سرور پشتیبانی شده است:
| گزینه | توضیحات |
|---|---|
key | مسیر فایل ca.key (در قالب PEM). |
cert | مسیر فایل ca.cert (در قالب PEM). |
pfx | مسیر فایل pfx حاوی کلید خصوصی، گواهینامه و گواهینامه های CA مشتری در قالب PFX. |
passphrase | رشته ای حاوی عبارت عبور برای کلید خصوصی یا PFX. |
ca | مسیر فایل حاوی لیستی از گواهینامه های قابل اعتماد در قالب PEM. |
ciphers | رشته ای که رمزهای مورد استفاده را توصیف می کند که با یک ":" از هم جدا شده اند. |
rejectUnauthorized | اگر درست باشد، گواهی سرور در برابر لیست CA های ارائه شده تأیید می شود. اگر تأیید ناموفق باشد، یک خطا برگردانده می شود. |
secureProtocol | روش SSL برای استفاده به عنوان مثال، SSLv3_method برای مجبور کردن SSL به نسخه 3. |
servername | نام سرور برای برنامه افزودنی SNI (Server Name Indication) TLS. |
requestCert | درست برای SSL دو طرفه. false برای SSL یک طرفه |
استفاده از گزینه های SSL/TLS کلاینت
میتوانید Edge Microgateway را به گونهای پیکربندی کنید که هنگام اتصال به نقاط پایانی هدف، یک کلاینت TLS یا SSL باشد. در فایل پیکربندی Microgateway، از عنصر targets برای تنظیم گزینه های SSL/TLS استفاده کنید.
این مثال تنظیماتی را ارائه می دهد که برای همه هاست ها اعمال خواهد شد:
targets:
ssl:
client:
key: /Users/jdoe/nodecellar/twowayssl/ssl/client.key
cert: /Users/jdoe/nodecellar/twowayssl/ssl/ca.crt
passphrase: admin123
rejectUnauthorized: trueدر این مثال، تنظیمات فقط برای میزبان مشخص شده اعمال می شود:
targets:
host: 'myserver.example.com'
ssl:
client:
key: /Users/myname/twowayssl/ssl/client.key
cert: /Users/myname/twowayssl/ssl/ca.crt
passphrase: admin123
rejectUnauthorized: trueدر اینجا یک مثال برای TLS آورده شده است:
targets:
host: 'myserver.example.com'
tls:
client:
pfx: /Users/myname/twowayssl/ssl/client.pfx
passphrase: admin123
rejectUnauthorized: trueدر اینجا لیستی از تمام گزینه های پشتیبانی شده مشتری وجود دارد:
| گزینه | توضیحات |
|---|---|
pfx | مسیر فایل pfx حاوی کلید خصوصی، گواهینامه و گواهینامه های CA مشتری در قالب PFX. |
key | مسیر فایل ca.key (در قالب PEM). |
passphrase | رشته ای حاوی عبارت عبور برای کلید خصوصی یا PFX. |
cert | مسیر فایل ca.cert (در قالب PEM). |
ca | مسیر فایل حاوی لیستی از گواهینامه های قابل اعتماد در قالب PEM. |
ciphers | رشته ای که رمزهای مورد استفاده را توصیف می کند که با یک ":" از هم جدا شده اند. |
rejectUnauthorized | اگر درست باشد، گواهی سرور در برابر لیست CA های ارائه شده تأیید می شود. اگر تأیید ناموفق باشد، یک خطا برگردانده می شود. |
secureProtocol | روش SSL برای استفاده به عنوان مثال، SSLv3_method برای مجبور کردن SSL به نسخه 3. |
servername | نام سرور برای برنامه افزودنی SNI (Server Name Indication) TLS. |
سفارشی کردن پروکسی edgemicro-auth
به طور پیش فرض، Edge Microgateway از یک پروکسی مستقر در Apigee Edge برای احراز هویت OAuth2 استفاده می کند. این پروکسی زمانی مستقر می شود که در ابتدا edgemicro configure اجرا می کنید. میتوانید پیکربندی پیشفرض این پراکسی را تغییر دهید تا پشتیبانی از ادعاهای سفارشی را به یک توکن وب JSON (JWT) اضافه کنید، انقضای نشانه را پیکربندی کنید، و نشانههای تازهسازی ایجاد کنید. برای جزئیات، به صفحه edgemicro-auth در GitHub مراجعه کنید.
با استفاده از سرویس احراز هویت سفارشی
به طور پیش فرض، Edge Microgateway از یک پروکسی مستقر در Apigee Edge برای احراز هویت OAuth2 استفاده می کند. این پروکسی زمانی مستقر می شود که در ابتدا edgemicro configure اجرا می کنید. به طور پیش فرض، URL این پروکسی در فایل پیکربندی Edge Microgateway به صورت زیر مشخص می شود:
authUri: https://myorg-myenv.apigee.net/edgemicro-auth
اگر می خواهید از سرویس سفارشی خود برای مدیریت احراز هویت استفاده کنید، مقدار authUri را در فایل پیکربندی تغییر دهید تا به سرویس شما اشاره کند. به عنوان مثال، ممکن است سرویسی داشته باشید که از LDAP برای تأیید هویت استفاده می کند.
مدیریت فایل های گزارش
Edge Microgateway اطلاعات مربوط به هر درخواست و پاسخ را ثبت می کند. فایل های گزارش اطلاعات مفیدی را برای اشکال زدایی و عیب یابی ارائه می دهند.
جایی که فایل های گزارش ذخیره می شوند
به طور پیش فرض، فایل های گزارش در /var/tmp ذخیره می شوند.
نحوه تغییر دایرکتوری فایل لاگ پیش فرض
دایرکتوری که فایل های گزارش در آن ذخیره می شوند در فایل پیکربندی Edge Microgateway مشخص شده است. برای جزئیات در مورد ایجاد تغییرات پیکربندی، به ایجاد تغییرات پیکربندی مراجعه کنید.
edgemicro: home: ../gateway port: 8000 max_connections: -1 max_connections_hard: -1 logging: level: info dir: /var/tmp stats_log_interval: 60 rotate_interval: 24
مقدار dir را تغییر دهید تا دایرکتوری فایل لاگ متفاوتی را مشخص کنید.
گزارش ها را به کنسول ارسال کنید
میتوانید گزارشگیری را طوری پیکربندی کنید که اطلاعات گزارش بهجای فایل گزارش به خروجی استاندارد ارسال شود. پرچم to_console را به صورت زیر روی true قرار دهید:
edgemicro:
logging:
to_console: true با این تنظیم، گزارشها به خروجی استاندارد ارسال میشوند. در حال حاضر، نمیتوانید گزارشها را هم به stdout و هم به یک فایل log ارسال کنید.
نحوه تنظیم سطح ورود به سیستم
میتوانید این سطوح گزارش را تنظیم کنید: اطلاعات ، هشدار ، و خطا . سطح اطلاعات توصیه می شود. تمام درخواستها و پاسخهای API را ثبت میکند و پیشفرض است.
نحوه تغییر فواصل گزارش
می توانید این فواصل را در فایل پیکربندی Edge Microgateway پیکربندی کنید. برای جزئیات در مورد ایجاد تغییرات پیکربندی، به ایجاد تغییرات پیکربندی مراجعه کنید.
ویژگی های قابل تنظیم عبارتند از:
- stats_log_interval : (پیشفرض: 60) فاصله زمانی، بر حسب ثانیه، زمانی که رکورد آمار در فایل گزارش API نوشته میشود.
- rotate_interval : (پیشفرض: 24) بازه زمانی، بر حسب ساعت، زمانی که فایلهای گزارش چرخش میشوند. به عنوان مثال:
edgemicro: home: ../gateway port: 8000 max_connections: -1 max_connections_hard: -1 logging: level: info dir: /var/tmp stats_log_interval: 60 rotate_interval: 24
توجه: فایل های گزارش بایگانی شده فشرده نمی شوند. هنگامی که فاصله شروع می شود، یک فایل گزارش جدید با مهر زمانی جدید ایجاد می شود.
شیوه های خوب نگهداری فایل لاگ
از آنجایی که دادههای فایل لاگ در طول زمان انباشته میشوند، Apigee توصیه میکند که از روشهای زیر استفاده کنید:
- از آنجایی که فایلهای گزارش میتوانند بسیار بزرگ شوند، مطمئن شوید که فهرست فایل لاگ فضای کافی دارد. به بخش های زیر که در آن فایل های گزارش ذخیره می شوند و نحوه تغییر دایرکتوری فایل گزارش پیش فرض مراجعه کنید.
- حداقل یک بار در هفته فایل های گزارش را حذف یا به یک فهرست آرشیو جداگانه منتقل کنید.
- اگر خطمشی شما حذف گزارشها است، میتوانید از دستور CLI
edgemicro log -cبرای حذف (پاک کردن) گزارشهای قدیمیتر استفاده کنید.
قرارداد نامگذاری فایل لاگ
هر نمونه Edge Microgateway سه نوع فایل گزارش تولید می کند:
- api - تمام درخواستها و پاسخهایی را که از طریق Edge Microgateway جریان مییابند ثبت میکند. شمارنده های API (آمار) و خطاها نیز در این فایل ثبت می شوند.
- err - هر چیزی که به stderr ارسال می شود را ثبت می کند.
- out - هر چیزی که به stdout ارسال شده است را ثبت می کند.
این قرارداد نامگذاری است:
edgemicro-<Host Name>-<Instance ID>-<Log Type>.log
به عنوان مثال:
edgemicro-mymachine-local-MTQzNTgNDMxODAyMQ-api.log edgemicro-mymachine-local-MTQzNTg1NDMODAyMQ-err.log edgemicro-mymachine-local-mtqzntgndmxodaymq-out.log
درباره محتویات فایل لاگ
اضافه شده در: v2.3.3
بهطور پیشفرض، سرویس گزارشگیری JSON پراکسیهای دانلود شده، محصولات و JSON Web Token (JWT) را حذف میکند. اگر میخواهید این اشیاء را در فایلهای گزارش خروجی بگیرید، هنگام راهاندازی Edge Microgateway DEBUG=* را تنظیم کنید. به عنوان مثال:
DEBUG=* edgemicro start -o docs -e test -k abc123 -s xyz456
توجه: در ویندوز، از SET DEBUG=* استفاده کنید
محتویات فایل لاگ "api".
فایل لاگ "api" حاوی اطلاعات دقیق در مورد جریان درخواست ها و پاسخ ها از طریق Edge Microgateway است. نام فایل های لاگ "api" به این صورت است:
edgemicro-mymachine-local-MTQzNjIxOTk0NzY0Nw-api.log
برای هر درخواست ارسال شده به Edge Microgateway، چهار رویداد در فایل لاگ "api" ثبت می شود:
- درخواست دریافتی از مشتری
- درخواست خروجی به هدف
- پاسخ دریافتی از هدف
- پاسخ خروجی به مشتری
هر یک از این ورودیهای جداگانه به صورت خلاصه نشان داده میشود تا به فشردهتر کردن فایلهای گزارش کمک کند. در اینجا چهار ورودی نمونه وجود دارد که هر یک از چهار رویداد را نشان می دهد. در فایل log، آنها به این شکل هستند (شماره خطوط فقط برای مرجع در doc هستند، آنها در فایل log ظاهر نمی شوند).
(1) 1436403888651 info req m=GET, u=/, h=localhost:8000, r=::1:59715, i=0 (2) 1436403888665 info treq m=GET, u=/, h=127.0.0.18080, i=0 (3) 1436403888672 info tres s=200, d=7, i=0 (4) 1436403888676 info res s=200, d=11, i=0
بیایید یک به یک آنها را بررسی کنیم:
1. نمونه درخواست دریافتی از مشتری:
1436403888651 info req m=GET, u=/, h=localhost:8000, r=::1:59715, i=0
- 1436403888651 - مهر تاریخ یونیکس
- اطلاعات - بستگی به زمینه دارد. بسته به سطح گزارش می تواند اطلاعات، هشدار یا خطا باشد. می تواند آمار برای یک رکورد آمار، هشدار برای هشدار، یا خطا برای خطا باشد.
- req - رویداد را شناسایی می کند. در این صورت از مشتری درخواست کنید.
- m - فعل HTTP مورد استفاده در درخواست.
- u - بخشی از URL که مسیر پایه را دنبال می کند.
- h - شماره میزبان و پورتی که Edge Microgateway در آن گوش می دهد.
- r - میزبان و پورت راه دور که درخواست مشتری از آنجا شروع شده است.
- i - شناسه درخواست. هر چهار ورودی رویداد این شناسه را به اشتراک خواهند گذاشت. به هر درخواست یک شناسه درخواست منحصر به فرد اختصاص داده می شود. همبستگی رکوردهای گزارش با شناسه درخواست می تواند بینش ارزشمندی در مورد تأخیر هدف ارائه دهد.
- د - مدت زمان بر حسب میلی ثانیه از زمان دریافت درخواست توسط Edge Microgateway. در مثال بالا، پاسخ هدف برای درخواست 0 پس از 7 میلی ثانیه (خط 3) دریافت شد و پاسخ پس از 4 میلی ثانیه اضافی (خط 4) برای مشتری ارسال شد. به عبارت دیگر، کل تاخیر درخواست 11 میلی ثانیه بود که 7 میلی ثانیه توسط هدف و 4 میلی ثانیه توسط خود Edge Microgateway گرفته شد.
2. نمونه درخواست ارسالی به هدف:
1436403888665 info treq m=GET, u=/, h=127.0.0.1:8080, i=0
- 1436403888651 - مهر تاریخ یونیکس
- اطلاعات - بستگی به زمینه دارد. بسته به سطح گزارش می تواند اطلاعات، هشدار یا خطا باشد. می تواند آمار برای یک رکورد آمار، هشدار برای هشدار، یا خطا برای خطا باشد.
- treq - رویداد را شناسایی می کند. در این مورد، درخواست هدف.
- m - فعل HTTP مورد استفاده در درخواست هدف.
- u - بخشی از URL که مسیر پایه را دنبال می کند.
- h - شماره میزبان و پورت هدف باطن.
- i - شناسه ورودی گزارش. هر چهار ورودی رویداد این شناسه را به اشتراک خواهند گذاشت.
3. نمونه پاسخ دریافتی از هدف
1436403888672 info tres s=200, d=7, i=0
1436403888651 - مهر تاریخ یونیکس
- اطلاعات - بستگی به زمینه دارد. بسته به سطح گزارش می تواند اطلاعات، هشدار یا خطا باشد. می تواند آمار برای یک رکورد آمار، هشدار برای هشدار، یا خطا برای خطا باشد.
- tres - رویداد را شناسایی می کند. در این مورد، پاسخ هدف.
- s - وضعیت پاسخ HTTP.
- د - مدت زمان بر حسب میلی ثانیه. زمان صرف شده برای تماس API توسط هدف.
- i - شناسه ورودی گزارش. هر چهار ورودی رویداد این شناسه را به اشتراک خواهند گذاشت.
4. نمونه پاسخ خروجی به مشتری
1436403888676 info res s=200, d=11, i=0
1436403888651 - مهر تاریخ یونیکس
- اطلاعات - بستگی به زمینه دارد. بسته به سطح گزارش می تواند اطلاعات، هشدار یا خطا باشد. می تواند آمار برای یک رکورد آمار، هشدار برای هشدار، یا خطا برای خطا باشد.
- res - رویداد را شناسایی می کند. در این مورد، پاسخ به مشتری.
- s - وضعیت پاسخ HTTP.
- د - مدت زمان بر حسب میلی ثانیه. این کل زمان صرف شده توسط تماس API است، از جمله زمان صرف شده توسط API هدف و زمان صرف شده توسط Edge Microgateway.
- i - شناسه ورودی گزارش. هر چهار ورودی رویداد این شناسه را به اشتراک خواهند گذاشت.
برنامه فایل لاگ
فایلهای گزارش در فاصله زمانی مشخص شده توسط ویژگی پیکربندی rotate_interval چرخش میشوند. تا زمانی که فاصله چرخش به پایان برسد، ورودی ها به همان فایل گزارش اضافه می شوند. با این حال، هر بار که Edge Microgateway دوباره راه اندازی می شود، یک UID جدید دریافت می کند و مجموعه جدیدی از فایل های گزارش را با این UID ایجاد می کند. همچنین به شیوه های نگهداری فایل گزارش خوب مراجعه کنید.
مرجع پیکربندی Edge Microgateway
محل فایل پیکربندی
ویژگی های پیکربندی توضیح داده شده در این بخش در فایل پیکربندی Edge Microgateway قرار دارند. برای جزئیات در مورد ایجاد تغییرات پیکربندی، به ایجاد تغییرات پیکربندی مراجعه کنید.
ویژگی های edge_config
این تنظیمات برای پیکربندی تعامل بین نمونه Edge Microgateway و Apigee Edge استفاده می شود.
- بوت استرپ : (پیشفرض: هیچکدام) یک URL که به یک سرویس خاص Edge Microgateway در حال اجرا در Apigee Edge اشاره میکند. Edge Microgateway از این سرویس برای برقراری ارتباط با Apigee Edge استفاده می کند. این URL زمانی که شما دستور تولید جفت کلید عمومی/خصوصی را اجرا میکنید، باز میگردد:
edgemicro genkeys. برای جزئیات به تنظیمات و پیکربندی Edge Microgateway مراجعه کنید. - jwt_public_key : (پیشفرض: هیچکدام) نشانی اینترنتی که به پراکسی Edge Microgateway اشاره میکند که در Apigee Edge مستقر شده است. این پروکسی به عنوان یک نقطه پایانی احراز هویت برای صدور نشانه های دسترسی امضا شده به مشتریان عمل می کند. این URL زمانی که شما دستور استقرار پروکسی را اجرا میکنید، برگردانده میشود: edgemicro configure . برای جزئیات به تنظیمات و پیکربندی Edge Microgateway مراجعه کنید.
ویژگی های edgemicro
این تنظیمات فرآیند Edge Microgateway را پیکربندی می کند.
- پورت : (پیشفرض: 8000) شماره پورتی که پردازش Edge Microgateway به آن گوش میدهد.
- max_connections : (پیشفرض: -1) حداکثر تعداد اتصالات ورودی همزمان Edge Microgateway را مشخص میکند. اگر از این تعداد بیشتر شود، وضعیت زیر برگردانده می شود:
res.statusCode = 429; // Too many requests - max_connections_hard : (پیشفرض: -1) حداکثر تعداد درخواستهای همزمانی که Edge Microgateway میتواند قبل از قطع کردن اتصال دریافت کند. این تنظیم برای خنثی کردن حملات انکار سرویس در نظر گرفته شده است. به طور معمول، آن را روی عددی بزرگتر از max_connections تنظیم کنید.
- ورود به سیستم :
- سطح : (پیشفرض: خطا)
- اطلاعات - تمام درخواستها و پاسخهایی را که از طریق یک نمونه Edge Microgateway جریان مییابد، ثبت میکند.
- هشدار - فقط پیام های هشدار را ثبت می کند.
- خطا - فقط پیام های خطا را ثبت می کند.
- dir : (پیشفرض: /var/tmp) فهرستی که فایلهای گزارش در آن ذخیره میشوند.
- stats_log_interval : (پیشفرض: 60) فاصله زمانی بر حسب ثانیه، زمانی که رکورد آمار در فایل لاگ api نوشته میشود.
- rotate_interval : (پیشفرض: 24) بازه زمانی، بر حسب ساعت، زمانی که فایلهای گزارش چرخش میشوند.
- سطح : (پیشفرض: خطا)
- پلاگین ها : پلاگین ها قابلیت هایی را به Edge Microgateway اضافه می کنند. برای جزئیات در مورد توسعه افزونه ها، به توسعه افزونه های سفارشی مراجعه کنید.
- dir : یک مسیر نسبی از دایرکتوری ./gateway به دایرکتوری ./plugins یا یک مسیر مطلق.
- sequence : لیستی از ماژول های افزونه برای افزودن به نمونه Edge Microgateway. ماژول ها به ترتیبی که در اینجا مشخص شده اند اجرا می شوند.
- اشکال زدایی: اشکال زدایی از راه دور را به فرآیند Edge Microgateway اضافه می کند.
- پورت : شماره پورتی برای گوش دادن. برای مثال، دیباگر IDE خود را طوری تنظیم کنید که در این پورت گوش کند.
- args : استدلال هایی برای فرآیند اشکال زدایی. به عنوان مثال:
args --nolazy
- config_change_poll_interval: (پیشفرض: 600 ثانیه) Edge Microgateway یک پیکربندی جدید را به صورت دورهای بارگیری میکند و در صورت تغییر، بارگذاری مجدد را اجرا میکند. نظرسنجی هر گونه تغییر ایجاد شده در Edge (تغییر در محصولات، پروکسی های آگاه از microgateway و غیره) و همچنین تغییرات ایجاد شده در فایل پیکربندی محلی را انتخاب می کند.
- disable_config_poll_interval: (پیشفرض: نادرست) برای خاموش کردن نظرسنجی تغییر خودکار روی true تنظیم کنید.
- request_timeout : یک مهلت زمانی برای درخواست های هدف تعیین می کند. تایم اوت بر حسب ثانیه تنظیم می شود. اگر مهلت زمانی رخ دهد، Edge Microgateway با یک کد وضعیت 504 پاسخ می دهد. (نسخه 2.4.x اضافه شد)
ویژگی های سرصفحه ها
این تنظیمات نحوه برخورد با هدرهای HTTP خاص را پیکربندی می کند.
- x-forwarded-for : (پیشفرض: true) برای جلوگیری از ارسال هدرهای x-forwarded-for به هدف، روی false تنظیم کنید. توجه داشته باشید که اگر یک هدر x-forwarded-for در درخواست باشد، مقدار آن بر روی مقدار Client-ip در Edge Analytics تنظیم میشود.
- x-forwarded-host : (پیشفرض: true) برای جلوگیری از ارسال سرصفحههای میزبان x-forwarded به هدف، روی false تنظیم کنید.
- x-request-id : (پیشفرض: true) برای جلوگیری از ارسال هدر x-request-id به هدف، روی false تنظیم کنید.
- x-response-time : (پیشفرض: true) برای جلوگیری از ارسال سرصفحههای x-response-time به هدف، روی false تنظیم کنید.
- via : (پیشفرض: true) برای جلوگیری از ارسال سرصفحهها به هدف، روی false تنظیم کنید.
ویژگی های oauth
این تنظیمات نحوه اجرای احراز هویت مشتری توسط Edge Microgateway را پیکربندی میکنند.
- allowNoAuthorization : (پیشفرض: نادرست) اگر روی true تنظیم شود، تماسهای API مجاز هستند از Edge Microgateway بدون هدر مجوز عبور کنند. برای نیاز به هدر Authorization (پیشفرض) این را روی false تنظیم کنید.
- allowInvalidAuthorization : (پیشفرض: نادرست) اگر روی true تنظیم شود، در صورتی که رمز ارسال شده در هدر Authorization نامعتبر یا منقضی شده باشد، تماسهای API مجاز به ارسال هستند. برای نیاز به نشانه های معتبر (پیش فرض) این را روی false قرار دهید.
- autorization-header : (پیش فرض: Authorization: Bearer) هدر مورد استفاده برای ارسال رمز دسترسی به Edge Microgateway. ممکن است بخواهید در مواردی که هدف نیاز به استفاده از هدر مجوز برای اهداف دیگری دارد، پیشفرض را تغییر دهید.
- api-key-header : (پیشفرض: x-api-key) نام هدر یا پارامتر کوئری که برای ارسال یک کلید API به Edge Microgateway استفاده میشود. همچنین استفاده از کلید API را ببینید.
- KeepAuthHeader : (پیشفرض: false) اگر روی true تنظیم شود، هدر Authorization ارسال شده در درخواست به هدف ارسال میشود (حفظ میشود).
- allowOAuthOnly - اگر روی true تنظیم شود، هر API باید یک سرصفحه مجوز با یک توکن دسترسی حامل داشته باشد. به شما امکان میدهد فقط به مدل امنیتی OAuth اجازه دهید (در حالی که سازگاری با عقب را حفظ میکند). (4.2.x اضافه شد)
- allowAPIKeyOnly -- اگر روی true تنظیم شود، هر API باید یک هدر x-api-key (یا یک مکان سفارشی) با یک کلید API داشته باشد. به شما امکان می دهد فقط مدل امنیتی کلید API را مجاز کنید (در حالی که سازگاری با عقب را حفظ می کند). (4.2.x اضافه شد)
ویژگی های خاص پلاگین
برای جزئیات بیشتر در مورد ویژگی های قابل تنظیم برای هر افزونه به استفاده از افزونه ها مراجعه کنید.
فیلتر کردن پروکسی ها
میتوانید فیلتر کنید کدام پروکسیهای آگاه از میکروگیتوی را یک نمونه Edge Microgateway پردازش میکند. هنگامی که Edge Microgateway راه اندازی می شود، تمام پروکسی های microgateway آگاه را در سازمانی که با آن مرتبط است دانلود می کند. از پیکربندی زیر برای محدود کردن پراکسی هایی که میکرو گیت وی پردازش می کند استفاده کنید. برای مثال، این پیکربندی، پراکسیهایی را که microgateway پردازش میکند به سه عدد محدود میکند: edgemicro_proxy-1 ، edgemicro_proxy-2 و edgemicro_proxy-3 :
proxies: - edgemicro_proxy-1 - edgemicro_proxy-2 - edgemicro_proxy-3
پوشاندن داده های تحلیلی
پیکربندی زیر از نمایش اطلاعات مسیر درخواست در تجزیه و تحلیل Edge جلوگیری می کند. موارد زیر را به پیکربندی microgateway اضافه کنید تا URI درخواست و/یا مسیر درخواست را پنهان کنید. توجه داشته باشید که URI از نام میزبان و قسمت های مسیر درخواست تشکیل شده است.
analytics: mask_request_uri: 'string_to_mask' mask_request_path: 'string_to_mask'
راه اندازی Edge Microgateway در پشت فایروال شرکت
پشتیبانی از نسخه 4.2.x
اگر Edge Microgateway پشت فایروال نصب شده باشد، ممکن است دروازه نتواند با Apigee Edge ارتباط برقرار کند. در این مورد، دو گزینه وجود دارد که می توانید در نظر بگیرید:
گزینه 1:
اولین گزینه این است که گزینه edgemicro: proxy_tunnel را در فایل پیکربندی microgateway روی true تنظیم کنید:
edge_config:
proxy: http://10.224.16.85:3128
proxy_tunnel: trueوقتی proxy_tunnel درست باشد، Edge Microgateway از روش HTTP CONNECT برای تونل کردن درخواستهای HTTP از طریق یک اتصال TCP استفاده میکند. (اگر متغیرهای محیطی برای پیکربندی پراکسی فعال باشند TLS نیز صادق است).
گزینه 2:
گزینه دوم این است که یک پروکسی مشخص کنید و proxy_tunnel را در فایل پیکربندی microgateway روی false قرار دهید. به عنوان مثال:
edge_config:
proxy: http://10.224.16.85:3128
proxy_tunnel: falseدر این مورد، میتوانید متغیرهای زیر را برای کنترل میزبانها برای هر پراکسی HTTP که میخواهید استفاده کنید، یا اینکه کدام میزبانها نباید پراکسیهای Edge Microgateway را کنترل کنند، تنظیم کنید: HTTP_PROXY ، HTTPS_PROXY ، و NO_PROXY .
میتوانید NO_PROXY را بهعنوان فهرستی از دامنههایی که Edge Microgateway نباید آنها را پراکسی کند، با کاما تعیین کنید. به عنوان مثال:
export NO_PROXY='localhost,localhost:8080'
HTTP_PROXY و HTTPS_PROXY را روی نقطه پایانی پراکسی HTTP تنظیم کنید. Edge Microgateway می تواند به آن پیام ارسال کند. به عنوان مثال:
export HTTP_PROXY='http://localhost:3786' export HTTPS_PROXY='https://localhost:3786'
برای اطلاعات بیشتر در مورد این متغیرها، نگاه کنید به:
https://www.npmjs.com/package/request#controlling-proxy-behaviour-using-environment-variables
همچنین ببینید
نحوه راه اندازی Edge Microgateway در پشت فایروال شرکت در انجمن Apigee.
استفاده از wildcard در پروکسی های Microgateway-aware
می توانید از یک یا چند علامت عام "*" در مسیر پایه یک پراکسی edgemicro_* (Microgateway-aware) استفاده کنید. به عنوان مثال، یک مسیر پایه از /team/*/members به مشتریان اجازه می دهد بدون نیاز به ایجاد موارد جدید با https://[host]/team/blue/members و https://[host]/team/green/members تماس بگیرند. پروکسی های API برای پشتیبانی از تیم های جدید. توجه داشته باشید که /**/ پشتیبانی نمی شود.
مهم: Apigee استفاده از علامت "*" را به عنوان اولین عنصر مسیر پایه پشتیبانی نمی کند. به عنوان مثال، این مورد پشتیبانی نمی شود: /*/ جستجو.
اشکال زدایی و عیب یابی
اتصال به دیباگر
میتوانید Edge Microgateway را با یک دیباگر مانند node-inspector اجرا کنید. این برای عیب یابی و اشکال زدایی افزونه های سفارشی مفید است.
- Edge Microgateway را در حالت اشکال زدایی مجدداً راه اندازی کنید. برای این کار
DEBUG=*را به ابتدای دستور start اضافه کنید. به عنوان مثال:
DEBUG=* edgemicro start -o myorg -e test -k db4e9e8a95aa7fabfdeacbb1169d0a8cbe42bec19c6b98129e02 -s 6e56af7c1b26dfe93dae78a735c8afc9796b077d105ae5618ce7edتوجه: در ویندوز، از
SET DEBUG=*استفاده کنید - دیباگر خود را راه اندازی کنید و آن را تنظیم کنید تا به شماره پورت برای فرآیند اشکال زدایی گوش دهد.
- اکنون می توانید از کد Edge Microgateway عبور کنید، نقاط شکست، عبارات تماشا و غیره را تنظیم کنید.
میتوانید پرچمهای استاندارد Node.js مربوط به حالت اشکالزدایی را مشخص کنید. به عنوان مثال، --nolazy به اشکال زدایی کدهای ناهمزمان کمک می کند.
بررسی فایل های گزارش
اگر مشکل دارید، حتما فایل های گزارش را برای جزئیات اجرا و اطلاعات خطا بررسی کنید. برای جزئیات، به مدیریت فایلهای گزارش مراجعه کنید.
با استفاده از امنیت کلید API
کلیدهای API مکانیزم ساده ای را برای احراز هویت مشتریانی که به Edge Microgateway درخواست می کنند ارائه می دهند. میتوانید با کپی کردن مقدار Consumer Key (همچنین به نام Client ID) از یک محصول Apigee Edge که شامل پروکسی احراز هویت Edge Microgateway است، یک کلید API دریافت کنید.
ذخیره کلیدها
کلیدهای API با توکن های حامل مبادله می شوند که در حافظه پنهان ذخیره می شوند. میتوانید کش را با تنظیم Cache-Control: no-cache در درخواستهای دریافتی روی Edge Microgateway غیرفعال کنید.
با استفاده از امنیت رمز OAuth2
برای جزئیات در مورد استفاده از نشانه OAuth با درخواست های پراکسی، Secure Edge Microgateway را ببینید.
استفاده از کلید API
برای جزئیات استفاده از کلیدهای API با درخواستهای پراکسی، به Secure Edge Microgateway مراجعه کنید.
پیکربندی نام کلید API
به طور پیش فرض، x-api-key نامی است که برای هدر کلید API یا پارامتر query استفاده می شود. می توانید این پیش فرض را در فایل پیکربندی تغییر دهید، همانطور که در ایجاد تغییرات پیکربندی توضیح داده شده است. به عنوان مثال، برای تغییر نام به apiKey :
oauth: allowNoAuthorization: false allowInvalidAuthorization: false api-key-header: apiKey