خطای 503 Service Unavailable

(نویسنده) | آخرین بروزرسانی: 12 آبان 1404

مشاهده خطای 503 Service Unavailable به این معنی است که وب‌سایت شما آنلاین است، اما سرور به دلیلی قادر به پاسخگویی به درخواست کاربر نیست. برخلاف خطاهای دیگر، این پیام به وضوح نشان می‌دهد که مشکلی در سمت سرور وجود دارد، نه در سمت کاربر.

 

خطای 503 به زبان ساده

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

خطای 503 Service Unavailable دقیقا همین مفهوم را در دنیای وب دارد. این یک کد وضعیت استاندارد HTTP است که به مرورگر کاربر می‌گوید: سرور فعال و در دسترس است، اما در حال حاضر به دلیل بار زیاد یا قرار داشتن در حالت تعمیر و نگهداری، نمی‌تواند این درخواست را پردازش کند.

بر اساس مستندات معتبر وب MDN Web Docs، این خطا نشان می‌دهد که سرور برای رسیدگی به درخواست آماده نیست. این وضعیت معمولا موقتی است و پس از مدتی برطرف می‌شود.

 

چرا خطای 503 رخ می‌دهد؟

این خطا می‌تواند دلایل متعددی داشته باشد، اما تقریبا تمام آن‌ها به یک مفهوم مهم مربوط است: تمام شدن ظرفیت منابع سرور برای پاسخگویی. در ادامه مهم‌ترین دلایل را بررسی می‌کنیم.

  1. اشباع شدن پردازش‌های PHP (PHP Worker Exhaustion): این رایج ترین دلیل در سایت‌های مبتنی بر PHP مانند وردپرس است. هر درخواست کاربر توسط یک کارگر PHP یا همان پردازش PHP-FPM پردازش می‌شود. اگر تعداد بازدیدکنندگان همزمان از تعداد کارگران موجود بیشتر شود، سرور دیگر قادر به پذیرش درخواست جدید نخواهد بود و خطای 503 را نمایش می‌دهد. این موضوع به طور کامل در راهنمای بهینه سازی PHP-FPM توضیح داده شده است.
  2. افزایش ناگهانی ترافیک: اجرای یک کمپین بازاریابی، یا بازدید از یک صفحه محبوب و ترند شده یا حتی حملات ربات‌ها می‌تواند باعث افزایش ناگهانی ترافیک و در نتیجه، تمام شدن منابع سرور شود.
  3. مصرف بیش از حد منابع CPU و RAM: یک کوئری سنگین دیتابیس، یک افزونه بهینه نشده یا یک اسکریپت معیوب می‌تواند تمام قدرت پردازنده (CPU) یا حافظه (RAM) سرور را مصرف کند و سرور را از پاسخگویی به درخواست‌های جدید باز دارد.
  4. تعمیر و نگهداری سرور (Server Maintenance): گاهی اوقات، مدیران سرور برای بروزرسانی‌های مهم نرم‌افزاری یا سخت‌افزاری، به صورت موقت سرور را در حالت تعمیر و نگهداری قرار می‌دهند که در این حالت خطای 503 به کاربران نمایش داده می‌شود.
  5. مشکلات افزونه یا قالب در وردپرس:یک افزونه یا قالب که به درستی کدنویسی نشده، می‌تواند با ایجاد یک حلقه بی‌پایان یا مصرف بیش از حد منابع، باعث از کار افتادن سرور و نمایش خطای 503 شود.
  6. مشکلات شبکه توزیع محتوا (CDN): گاهی اوقات، خطای 503 از سرور اصلی شما نیست، بلکه از سمت سرویس CDN شما (مانند Cloudflare) است. اگر سرورهای CDN نتوانند با سرور اصلی شما ارتباط برقرار کنند، ممکن است این خطا را به کاربر نمایش دهند.

 

خلاصه دلایل و راه حل های سریع خطای 503

علت اصلیتوضیح فنیراه‌حل سریع
پر شدن ظرفیت PHP-FPMتعداد کارگران PHP برای پاسخگویی به ترافیک فعلی کافی نیست.افزایش مقدار pm.max_children در تنظیمات.
مصرف بالای CPU/RAMیک افزونه، کوئری یا اسکریپت در حال مصرف تمام منابع است.بررسی لاگ‌ها و استفاده از دستور htop برای شناسایی پردازش سنگین.
مشکل در افزونه/قالبکدنویسی نادرست در یک افزونه یا قالب باعث اختلال شده است.غیرفعال کردن تمام افزونه‌ها و بازگردانی به قالب پیش‌فرض وردپرس.

راهنمای مرحله به مرحله برای رفع خطای 503

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

 

مرحله اول: آیا مشکل موقتی است؟ (راه‌اندازی مجدد سرویس‌ها)

گاهی اوقات، یک سرویس ممکن است به دلیل یک مشکل موقت گیر کرده باشد. قبل از هر کار دیگری، راه‌اندازی مجدد سرویس‌ها می‌تواند مشکل را برطرف کند. با دسترسی SSH دستورات زیر را اجرا کنید:

sudo systemctl restart php8.3-fpm
sudo systemctl restart nginx

(اگر از Apache استفاده می‌کنید، دستور sudo systemctl restart apache2 را جایگزین کنید، یا اگر از هر نسخه php هندلر یا وب سروری استفاده میکنید، باید آن دستور را برای ریستارت وارد کنید). پس از اجرای این دستورات، چند دقیقه صبر کرده و سایت را مجددا بررسی کنید.

 

مرحله دوم: بررسی مصرف منابع سرور

با استفاده از دستور htop در ترمینال، مصرف لحظه‌ای CPU و RAM را بررسی کنید. اگر می‌بینید که مصرف CPU یا RAM به ۱۰۰٪ نزدیک شده است، به احتمال زیاد یک پردازش سنگین در حال اجراست. با بررسی لیست پردازش‌ها در htop، می‌توانید منبع مشکل را شناسایی کنید.

 

مرحله سوم: غیرفعال کردن موقت افزونه‌ها (برای کاربران وردپرس)

از آنجایی که افزونه‌ها یکی از دلایل اصلی خطای 503 هستند، بهترین راه برای تست، غیرفعال کردن تمام آن‌هاست. اگر به پنل مدیریت وردپرس دسترسی ندارید، از طریق FTP یا File Manager هاست، نام پوشه plugins را در مسیر wp-content به plugins_old تغییر دهید. این کار تمام افزونه‌ها را غیرفعال می‌کند. سپس سایت را بررسی کنید. اگر مشکل حل شد، نام پوشه را به حالت اول بازگردانده و افزونه‌ها را یکی‌یکی از داخل پنل وردپرس فعال کنید تا افزونه مشکل‌ساز را پیدا کنید.

 

مرحله چهارم: بررسی لاگ‌های سرور

لاگ‌ها یا گزارش‌های سرور، بهترین دوستان شما برای پیدا کردن ریشه مشکلات فنی هستند. مهم‌ترین لاگ‌هایی که باید بررسی کنید عبارتند از:

  • لاگ خطای وب‌سرور: /var/log/nginx/error.log یا /var/log/apache2/error.log
  • لاگ PHP-FPM: معمولا در مسیری مانند /var/log/php8.1-fpm.log قرار دارد.

 

در این فایل‌ها به دنبال پیام‌هایی بگردید که به تمام شدن ظرفیت اشاره دارند، مانند: worker_connections are not enough در Nginx یا server reached pm.max_children setting در لاگ PHP-FPM.

 

مرحله پنجم: افزایش منابع PHP-FPM

اگر تحلیل شما نشان داد که مشکل از کمبود کارگران PHP است، باید مقادیر موجود در فایل www.conf را مطابق با راهنمای کامل ما در مقاله بهینه سازی PHP-FPM افزایش دهید.

 

مرحله ششم: تماس با پشتیبانی هاستینگ

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

 

سوالات متداول درباره خطای 503

آیا خطای 503 بر سئوی سایت تاثیر منفی دارد؟

اگر این خطا برای مدت کوتاهی (چند دقیقه) رخ دهد، تاثیر خاصی نخواهد داشت. اما اگر برای چندین ساعت یا به صورت مکرر اتفاق بیفتد، ربات‌های گوگل نمی‌توانند به سایت شما دسترسی پیدا کنند و این موضوع می‌تواند منجر به افت رتبه سایت شما شود.

تفاوت خطای 503 با 504 چیست؟

خطای 503 یعنی سرور به دلیل مشغولی زیاد، اصلا نتوانست درخواست را بپذیرد. اما خطای 504 Gateway Timeout یعنی سرور درخواست را پذیرفت، اما پردازش آن بیش از حد طول کشید و وب‌سرور از منتظر ماندن برای پاسخ منصرف شد.

آیا کمبود حافظه RAM می‌تواند باعث خطای 503 شود؟

بله، به صورت غیرمستقیم. کمبود RAM می‌تواند باعث از کار افتادن سرویس‌های مهم مانند دیتابیس (MySQL) یا خود PHP-FPM شود. وقتی این سرویس‌ها از کار بیفتند، سرور دیگر قادر به پردازش درخواست‌ها نخواهد بود و خطای 503 را نمایش می‌دهد.

از خطاهای مداوم سرور خسته شده‌اید و به کمک تخصصی نیاز دارید؟

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

مشاهده پلن‌های سرور مجازی
درخواست مشاوره فنی رایگان



نویسنده: ایرج زاهدی، بنیان‌گذار و معمار فنی بلوسرور. محتوای این مقالات بر پایه تجربه عملی در طراحی، پیاده‌سازی و مدیریت پروژه‌های متنوع میزبانی وب در ایران و خارج از کشور، در طول بیش از یک دهه فعالیت مداوم نوشته شده است. به عنوان متخصص در بهینه‌سازی عملکرد و عیب‌یابی سیستم‌های هاستینگ (از VPS تا هاست اشتراکی)، هدف من به اشتراک‌گذاری تجربیات و راهکارهای فنی است؛ همان دانشی که امروز ستون اصلی پایداری و کیفیت در سرویس‌های بلوسرور محسوب می‌شود.