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

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

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

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

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

مشاهده لاگ‌های Node.js

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

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

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

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

ابزار ردیابی برای اشکال‌زدایی عمومی پروکسی مفید است. برای اطلاعات بیشتر در مورد استفاده از ابزار ردیابی، به بخش «استفاده از ابزار ردیابی» مراجعه کنید.

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

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

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

برای مشاهده خروجی پیام‌های console.log در ابزار ردیابی، API خود را در ابزار ردیابی فراخوانی کنید و روی خروجی از همه تراکنش‌ها کلیک کنید تا پنل خروجی باز شود:

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

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;

بسته به مدت زمانی که سرور برای پاسخگویی نیاز دارد، می‌توانید تنظیمات ایده‌آل زمان انتظار را تعیین کنید. برای مثال، زمان انتظار خواندن ۴۵ تا ۶۰ ثانیه می‌تواند برای فراهم کردن یک بافر معقول ایده‌آل باشد.

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

همچنین می‌توانید مقادیر پیش‌فرض timeout مربوط به 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>

همچنین به مرجع ویژگی‌های نقطه پایانی مراجعه کنید.

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

برای آشنایی بیشتر با اشکال‌زدایی، به موارد زیر مراجعه کنید:

مراحل بعدی

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