‫۵۰۳ سرویس دردسترس نیست - NoActiveTargets

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

ویدیوها

برای اطلاعات بیشتر درباره خطاهای ۵۰۳، ویدیوهای زیر را ببینید:

ویدیو شرح
عیب‌یابی و رفع خطای ۵۰۳ سرویس دردسترس نیست - NoActiveTargets درباره موارد زیر بیشتر بدانید:
  • اهمیت سرورهای هدف و پایشگرهای سلامت
  • عیب‌یابی و رفع خطای «۵۰۳ سرویس دردسترس نیست - NoActiveTargets» در زمان واقعی

نشانه

برنامه مشتری کد وضعیت پاسخ HTTP 503 را با پیام سرویس دردسترس نیست و کد خطای NoActiveTargets برای درخواست‌های پراکسی API دریافت می‌کند.

پیام خطا

پاسخ خطای زیر را خواهید دید:

HTTP/1.1 503 Service Unavailable
  

پیام خطای زیر را در پاسخ HTTP خواهید دید:

{
   "fault": {
      "faultstring": "The Service is temporarily unavailable",
      "detail": {
           "errorcode": "messaging.adaptors.http.flow.NoActiveTargets"
       }
    }
}
  

علل احتمالی

پاسخ HTTP 503 Service Unavailable با کد خطای NoActiveTargets معمولاً زمانی مشاهده می‌شود که از یک یا چند سرور هدف در پیکربندی نقطه پایانی هدف در «پراکسی API» خود استفاده می‌کنید.

جدول زیر دلایل احتمالی برای پاسخ ۵۰۳ سرویس دردسترس نیست با کد خطای NoActiveTargets را فهرست می‌کند:

علت شرح چه کسی می‌تواند مراحل عیب‌یابی را انجام دهد
سرور هدف غیرفعال است سرور هدف مشخص‌شده در پیکربندی نقطه پایان هدف غیرفعال است. کاربران «فضای ابری خصوصی و عمومی لبه‌ای»
خطاهای اتصال به‌دلیل تفکیک نادرست ساناد وضوح ساناد سرور هدف منجر به نشانی‌های IP بدی شد که به خطاهای اتصال منتهی می‌شود. کاربران Edge Private Cloud
خطاهای اتصال مشکلات شبکه یا اتصال مانع از اتصال مشتری به سرور می‌شود. کاربران Edge Private Cloud
نام مستعار میزبان هدف نادرست میزبان سرور هدف مشخص‌شده نادرست است یا نویسه‌های ناخواسته (مثل فاصله) دارد. کاربران «فضای ابری خصوصی و عمومی لبه‌ای»
خطاهای دست‌دهی SSL دست دادن TLS/SSL بین کارخواه و سرور ناموفق بود. کاربران «فضای ابری خصوصی و عمومی لبه‌ای»
عدم موفقیت در بررسی سلامت بررسی‌های سلامت که برای بررسی سلامت سرور هدف پیکربندی شده‌اند ممکن است به‌دلایلی ناموفق باشند. کاربران Edge Private Cloud

دلیل: سرور هدف غیرفعال است

اگر همه سرورهای هدف مشخص‌شده در پیکربندی نقطه پایانی هدف غیرفعال باشند، پاسخ ۵۰۳ سرویس دردسترس نیست با کد خطای NoActiveTargets دریافت می‌کنید.

تشخیص

  1. نام سرور هدفی را که در «پیکربندی نقطه پایانی هدف» خاص «پراکسی API» ناموفق استفاده می‌شود بااستفاده از یکی از روش‌های زیر تعیین کنید:
    1. اگر یک نقطه پایانی هدف واحد وجود دارد، آن نقطه پایانی هدف خاص را بررسی کنید.
    2. اگر چندین نقطه پایانی هدف وجود دارد و مطمئن نیستید کدام‌یک سرور هدف را غیرفعال کرده است، مراحل زیر را دنبال کنید:
      1. جلسه ردیابی را فعال کنید، تماس با میانای برنامه‌سازی کاربردی را برقرار کنید و مشکل - 503 Service Unavailable را بازتولید کنید.
      2. از ردیابی، به جریان درخواست هدف شروع شد پیمایش کنید و نام نقطه پایانی هدف را همان‌طور که در زیر نشان داده شده است تعیین کنید:
      3. درحال تعیین نام نقطه پایان هدف از ردیابی

  2. پس‌از شناسایی نقطه پایان هدف، نام سرور هدف را که از پیکربندی نقطه پایان هدف استفاده می‌شود دریافت کنید، همان‌طور که در مثال زیر نشان داده شده است:
    <TargetEndpoint name="default">>
      <HTTPTargetConnection>
        <LoadBalancer>
          <Server name="demo-target" />
        </LoadBalancer>
        <Path>/test</Path>
      </HTTPTargetConnection>
    </TargetEndpoint>
          

    در مثال بالا، یک سرور هدف واحد به‌نام demo-target وجود دارد.

  3. بااستفاده از Edge UI یا فراخوانی Edge API، تعریف هریک از سرورهای هدف استفاده‌شده در نقطه پایان هدف را دریافت کنید.

    میانای کاربر Edge

    برای دریافت تعریف بااستفاده از «واسط کاربر Edge»:

    1. به سرپرست > محیط‌ها > سرورهای هدف پیمایش کنید.
    2. محیط خاصی را که در آن با خرابی مواجه شده‌اید انتخاب کنید.
    3. برای دریافت تعریف سرور هدف، نام سرور هدف خاص را جستجو کنید.

      برای مثال، نام سرور هدف demo-target را تایپ کنید و تعریف آن را همان‌طور که در زیر نشان داده شده است خواهید دید:

      نام سرور هدف و وضعیت فعال/غیرفعال

      توجه داشته باشید که در اینجا سرور هدف demo-target دارای نام مستعار میزبان است، شماره درگاه دارد، و SSL فعال است. بااین‌حال، خود سرور مقصد غیرفعال است که با خاکستری شدن عنصر فعال نشان داده می‌شود.

    Edge API

    برای دریافت تعریف بااستفاده از Edge API:

    از Get TargetServer API برای دریافت تعریف سرور هدف استفاده کنید.

    برونداد تعریف سرور هدف

    <TargetServer name="demo-target">
      <Host>demo-target.apigee.net</Host>
      <Port>443</Port>
      <IsEnabled>false</IsEnabled>
      <SSLInfo>
          <Enabled>true</Enabled>
      </SSLInfo>
    </TargetServer>
              

    برونداد Apigee API نشان می‌دهد که سرور هدف demo-target غیرفعال است زیرا عنصر IsEnabled روی false تنظیم شده است.

    ازآنجایی‌که سرور مقصد غیرفعال است، «پردازشگر پیام» بلافاصله 503 Service Unavailable را با کد خطای NoActiveTargets به‌عنوان پاسخ به مشتری ارسال می‌کند.

وضوح

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

میانای کاربر Edge

  1. به سرپرست > محیط‌ها > سرورهای هدف پیمایش کنید.
  2. محیط خاصی را که در آن با خرابی مواجه شده‌اید انتخاب کنید.
  3. نام سرور هدف خاص را جستجو کنید تا تعریف آن را دریافت کنید.
  4. کارساز هدف خاص را انتخاب کنید و سپس روی ویرایش کلیک کنید.
  5. چارگوش فعال را انتخاب کنید.
  6. روی به‌روزرسانی کلیک کنید.

Edge API

از میانای برنامه‌سازی کاربردی «به‌روزرسانی سرور هدف» برای به‌روزرسانی تعریف سرور هدف استفاده کنید و مطمئن شوید که IsEnabled در بار داده درخواست میانای برنامه‌سازی کاربردی روی true تنظیم شده است، همان‌طور که در زیر نشان داده شده است:

<TargetServer name="demo-target">
  <Host>demo-target.apigee.net</Host>
  <Port>443</Port>
  <IsEnabled>true</IsEnabled>
  <SSLInfo>
      <Enabled>true</Enabled>
  </SSLInfo>
</TargetServer>
        

اگر مشکل همچنان ادامه داشت، به اطلاعات تشخیصی ضروری بروید.

عیب‌یابی مشکلات بااستفاده از پایش API

پایش میانای برنامه‌سازی کاربردی به شما امکان می‌دهد تا مناطق مشکل‌دار را به‌سرعت جدا کنید تا مشکلات خطا، عملکرد، و تأخیر و منبع آن‌ها را تشخیص دهید، مثل برنامه‌های توسعه‌دهنده، پراکسی‌های میانای برنامه‌سازی کاربردی، هدف‌های زیرینه، یا پلاتفرم میانای برنامه‌سازی کاربردی.

گام‌به‌گام ازطریق یک سناریو نمونه که نشان می‌دهد چگونه بااستفاده از «پایش API» مشکلات 5xx را در APIهای خود عیب‌یابی کنید. برای مثال، ممکن است بخواهید هشداری راه‌اندازی کنید تا وقتی تعداد خطاهای messaging.adaptors.http.flow.NoActiveTargets از آستانه خاصی فراتر رفت به شما اطلاع داده شود.

باید اطلاعات تشخیص خرابی را جمع‌آوری کند

اگر مشکل حتی پس‌از دنبال کردن دستورالعمل‌های بالا برطرف نشد، لطفاً اطلاعات تشخیصی زیر را جمع‌آوری کنید. با پشتیبانی Apigee تماس بگیرید و آن‌ها را هم‌رسانی کنید:

  1. اگر کاربر «ابر عمومی» هستید، اطلاعات زیر را ارائه دهید:
    1. Organization Name
    2. نام محیط
    3. نام پراکسی میانای برنامه‌سازی کاربردی
    4. فرمان curl را برای بازتولید خطا تکمیل کنید
    5. فایل ردیابی حاوی درخواست‌های «۵۰۳ سرویس دردسترس نیست» با کد خطای NoActiveTargets
  2. اگر کاربر «ابر خصوصی» هستید، اطلاعات زیر را ارائه دهید:
    1. پیام خطای کامل مشاهده شد
    2. نام محیط
    3. دسته «پراکسی میانای برنامه‌سازی کاربردی»
    4. فایل ردیابی حاوی درخواست‌های «۵۰۳ سرویس دردسترس نیست» با کد خطای NoActiveTargets
    5. گزارش‌های دسترسی NGINX

      (/opt/apigee/var/log/edge-router/nginx/<org>~<env>.<port#>_access_log)

    6. گزارش‌های پردازنده پیام

      (/opt/apigee/var/log/edge-message-processor/logs/system.log)