اشکال زدایی و عیب یابی پروکسی های Node.js

شما در حال مشاهده اسناد Apigee Edge هستید.
به مستندات Apigee X بروید .
اطلاعات

این یک تمرین خوب است که مطمئن شوید هر کد Node.js که به یک پروکسی اضافه می کنید قبل از استقرار آن در Edge کار می کند. این مبحث راه‌های اشکال‌زدایی و عیب‌یابی پراکسی‌هایی را که شامل برنامه‌های Node.js پس از استقرار هستند، مورد بحث قرار می‌دهد.

افزایش اندازه استخر اتصال برای بهبود عملکرد

اگر متوجه عملکرد کند شدید، ممکن است بتوانید با افزایش اندازه پیش‌فرض استخر اتصال Node.js با maxSockets یا با غیرفعال کردن ادغام سوکت، مشکل را حل کنید. برای اطلاعات بیشتر و کد نمونه، به نکات عملکرد Node.js: Socket Pooling در انجمن Apigee مراجعه کنید.

مشاهده گزارش‌های Node.js

برای مشاهده اطلاعات گزارش مربوط به برنامه Node.js خود:

  1. در صفحه اصلی پراکسی های API، روی پروکسی که می خواهید مشاهده کنید کلیک کنید.
  2. در صفحه خلاصه پروکسی انتخاب شده، روی Node.js Logs در سمت راست نوار ابزار کلیک کنید.

در صفحه گزارش‌ها، می‌توانید محدوده زمانی از گزارش‌ها را برای مشاهده انتخاب کنید، همانطور که در زیر نشان داده شده است. گزارش‌ها تماس‌های روش HTTP، موفقیت یا عدم موفقیت تماس‌ها، پیام‌های console.log و غیره را ثبت می‌کنند. یک رشته جستجو را در فیلد جستجو وارد کنید تا تمام ورودی‌های گزارش حاوی رشته نمایش داده شود.

با استفاده از ابزار ردیابی

ابزار ردیابی برای اشکال زدایی عمومی پروکسی مفید است. برای اطلاعات دقیق در مورد استفاده از ابزار ردیابی، به استفاده از ابزار Trace مراجعه کنید.

خروجی کنسول چاپ

می توانید عبارات console.log را در کد Node.js خود جاسازی کنید و خروجی را در ابزار ردیابی مشاهده کنید. به عنوان مثال، عبارت زیر مقدار متغیر config.user را چاپ می کند:

console.log('Logging in as %s', config.username);

برای مشاهده خروجی پیام‌های console.log در ابزار ردیابی، API خود را در Trace Tool تماس بگیرید و روی Output from all Transactions کلیک کنید تا پانل خروجی باز شود:

با فرض اینکه کد زیر را اجرا کرده اید ...

var http = require('http');

console.log('node.js application starting...');

var svr = http.createServer(function(req, resp) {
    resp.end('Hello, World!');
});

svr.listen(9000, function() {
    console.log('Node HTTP server is listening');
});

... عبارات کنسول در پنل ظاهر می شود:

پیکربندی تنظیمات مهلت زمانی هدف Nginx

اگر از Nginx به عنوان یک پروکسی استفاده می کنید و خطاهای "Bad Gateway" را مشاهده می کنید، پیکربندی زمان پایان پروکسی Nginx را همانطور که در اینجا توضیح داده شده است، افزایش دهید:

به عنوان مثال:

proxy_connect_timeout       60;
proxy_read_timeout          120;

بسته به مدت زمانی که سرور طول می کشد تا پاسخ دهد، می تواند تنظیمات زمان بندی ایده آل شما را تعیین کند. برای مثال، زمان خواندن 45 تا 60 ثانیه ممکن است برای ارائه یک بافر معقول ایده آل باشد.

پیکربندی تنظیمات مهلت زمانی هدف Apigee

همچنین می‌توانید مقادیر زمان‌بندی پیش‌فرض Apigee را در عنصر HttpTargetConnection در TargetEndpoint پیکربندی کنید. مقادیر پیش فرض عبارتند از:

connect.timeout.millis - 60 seconds
io.timeout.millis - 120 seconds
<HTTPTargetConnection>
    <Properties>
        <Property name="connect.timeout.millis">5000</Property>
        <Property name="io.timeout.millis">5000</Property>
    </Properties>
    <URL>http://www.google.com</URL>
</HTTPTargetConnection>

همچنین به مرجع ویژگی های Endpoint مراجعه کنید.

برای اطلاعات بیشتر

برای کسب اطلاعات بیشتر در مورد اشکال زدایی، نگاه کنید به:

مراحل بعدی

برای اطلاعات در مورد پشتیبانی از ماژول Node.js در Apigee Edge، از جمله اطلاعات مربوط به پشتیبانی از HTTP/HTTPS، TLS، و سایر موضوعات پیشرفته، به درک پشتیبانی Edge برای ماژول‌های Node.js مراجعه کنید.