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

یک خطای ۵۰۳ Service Unavailable نشانه این است که سرور هنوز درست کار می‌کند ، چرا که قادر به پردازش درخواست است و تصمیم گرفته‌است که کدخطای  ۵۰۳  را برگرداند . همانند اکثر کدهای وضعیت HTTP که یک خطا مانند این را نشان می‌دهند ، تعیین علت دقیق  خطای ۵۰۳ Service Unavailable ممکن است دشوار باشد . ده‌ها کد وضعیت HTTP ممکن برای نشان دادن رابطه پیچیده بین مشتری ، یک برنامه وب، یک سرور وب، و اغلب چندین خدمات وب شخص ثالث وجود دارد. بنابراین تعیین علت یک کد وضعیت خاص، حتی تحت بهترین شرایط می‌تواند یک چالش باشد . در این مقاله با نگاهی به چند نکته برای رفع برخی مشکلات بالقوه برای شرایط مشترک، که ممکن است موجب بروز این خطا شوند راهکار هایی را بررسی می‌کنیم .

علت بروز خطای ۵۰۳ Service Unavailable در وردپرس

تمام کدهای وضعیت پاسخ HTTP که در دسته ۵xx هستند، پاسخ های خطای سرور در نظر گرفته می شوند. بر خلاف خطای ۵۰۲ Bad Gateway که نشان می دهد که، سرور در جایی که در زنجیره اتصال قرار دارد یا خاموش است یا قابل دسترسی نیست، یک خطای ۵۰۳ Service Unavailable به سادگی نشان می دهد که سرور به طور موقت قادر به پاسخگویی به درخواست نیست، اما این عملکرد سرور به طور طبیعی است. بر خلاف کدهای پاسخ در gateway related 5xx که ممکن است مسائل را بر روی سرور وب یا سرور دیگری در قسمت بالادست نشان دهد، کد خطای ۵۰۳ Service Unavailable، به طور کلی یک مسئله را بر روی وب سرور واقعی میزبان برنامه شما نشان می دهد.

در اغلب موارد سرور وب یک صفحه کاربری را ارائه می دهد که نشان می‌دهد سرویس موقتا ً قابل‌دسترسی نیست . علاوه بر این ، برنامه باید یک واکنش – بعد از سرصفحه HTTP را ارسال کند، که به کاربر ( کلاینت ) اطلاع می‌دهد که چقدر طول می‌کشد تا بار دیگر بتواند درخواست خود راارائه بکند . این مقدار باید یک مقدار زمانی باشد که زمانی را که طول می کشد تا دوباره سرویس در دسترس قرار گیرد، نشان دهد، یا یک مقدار عددی که نشان می‌دهد چند ثانیه از حالا به بعدکاربر بایدبرای تلاش مجدد صبر کند .

راه های رفع خطای ۵۰۳ Service Unavailable

با توجه به این مطلب که اصولا این خطا در دو حالت رخ می دهد، یعنی یا در سمت کاربر مشکلی پیش می آید یا در سمت سرور سرویس دهنده، به طور کلی راه حل ها به دو دسته تقسیم می شوند:

۱- رفع خطای ۵۰۳ Service Unavailable درسمت کاربر

۲- رفع خطای ۵۰۳ Service Unavailable درسمت سرور

رفع خطای ۵۰۳ Service Unavailable درسمت کاربر

از آنجا که خطای ۵۰۳ Service Unavailable نشان می‌دهد که چیزی در سرور برنامه شما اشتباه شده‌است ، ما عمدتا ً می‌توانیم طرف مشتری را نادیده بگیریم. اگر می‌خواهید این مشکل را با برنامه خود تشخیص دهید، می‌توانید فورا ً بیشتر کد و اجزای طرف مشتری مانند HTML ، برگه سبک ( cascading CSS ) ، جاوا اسکریپت client ، و … را نادیده بگیرید.

این مساله فقط برای وب سایت‌ها صادق نیست، بسیاری از برنامه‌های هوشمند تلفن که یک رابط کاربری مدرن دارند در واقع توسط یک برنامه وب معمولی در پشت صحنه‌کار می‌کنند ؛یکی که به سادگی از کاربر پنهان است. اگر از چنین برنامه ای استفاده می‌کنید و خطای ۵۰۳ Service Unavailable رخ می‌دهد، این موضوع ربطی به برنامه نصب‌شده بر روی گوشی شما یا دستگاه تست محلی ندارد . درواقع ، آن مشکلی در سمت سرور است، که بیشتر منطق و پردازش پشت صحنه‌ها را اجرا می‌کند، خارج از میدان رابط محلی که به کاربر ارائه می‌شود .

همانطور که قبلاً ذکر شد، یک خطای ۵۰۳ Service Unavailable نشان می‌دهد که سرور ( معمولا سرور وب واقعی که برنامه شما بوسیله آن در حال اجراست ) موقتا ً قابل‌دسترسی نیست . این معمولا ً به دلیل ” پایین بودن ” عملکرد سرور برای نگهداری برنامه‌ریزی‌شده، یا ناشی از بار سنگین ترافیک است که مانع از خدمات‌رسانی به تمام درخواست‌های دریافتی می‌شود. در مورد اولی ، سرور واقعا ً سقوط نکرده یا بسته نشده است، بلکه به جای آن خود را به حالت خدماتی معرفی کرده‌است که از بسیاری از درخواست‌ها درحالت عادی جلوگیری می‌کند .

خطای ۵۰۳ Service Unavailable

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

در حالتی دیگر سرور درخواست را به علت اضافه‌بار، رد می‌کند، که معمولا ً به این معنی است که یک ترافیک سنگین به خاطر حمله غیر منتظره ای از درخواست‌های دریافتی وجود دارد. در این شرایط سرور با رد بخشی از تمام درخواست‌های وارده و بازگشت دادن خطای ۵۰۳ Service Unavailable به منظور حفظ یک رفتار نرمال برای بخشی از درخواست‌ها ، به طور موثر خود را از دسترس خارج می کند. اگر برنامه / سرور بدرستی پیکربندی شده باشد، در این زمان رسیدگی به درخواستتان را می ‌توانید با کمی صبر و retrying چند باره تکمیل کنید ، خوشبختانه معمولا این کار برای کاهش ترافیک و اجازه دادن به شما کافی است .

آموزش رفع خطای ۵۰۳ Service Unavailable درسمت سرور

بسیار مهم است که قبل از انجام هر گونه اصلاح یا تغییر سیستم، یک نسخه پشتیبان کامل از برنامه، پایگاه داده و غیره را تهیه کنید. حتی بهتر است، اگر توانایی دارید، یک کپی کامل از برنامه را بر روی یک سرور ثانویه قرار دهید که “زنده” نیست، یا در غیر این صورت فعال و در دسترس عموم نیست. این به شما یک زمین تست تمیز می دهد که برای تست تمام راه حلهای احتمالی برای حل این مسئله، بدون تهدید امنیت یا تقلید از برنامه زنده، به شما کمک می کند.

راه اندازی مجدد سرور

اگر شما یا یک مدیر قادر به انجام این کار هستید، یکی از ساده ترین راه ها اغلب راه اندازی مجدد سرور وب میزبان برنامه است. اگر برنامه شما بر روی چندین سرور پخش می شود، مطمئن شوید که همه آنها به روش صحیح راه اندازی مجدد شده اند تا سیستم به طور عادی به اینترنت بازگردانده شود. یک خطای ۵۰۳ Service Unavailable ممکن است در نتیجه یک تنگنا در جایی در زنجیره سرورایجاد شده باشد که برنامه شما را میزبانی می کند، بنابراین یک راه اندازی مجدد ساده می تواند همه چیز را تازه کند و به شما بازگردد و اجرا شود.

تعمیر و نگهداری غیرمنتظره را بررسی کنید

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

خطای ۵۰۳ Service Unavailable

در چنین زمانی سرور وب می تواند خطای ۵۰۳ Service Unavailable را صادر کند، به خصوص اگر برنامه شما روی یک سرور کندتر یا یک میزبان مشترک باشد. اگر شما قادر به دسترسی به تنظیمات مدیریت برنامه / سرور خود هستید، گزینه های پیکربندی برای برنامه ریزی تعمیر و نگهداری خودکار یا موارد مشابه را چک کنید، اگر این گزینه ها را غیرفعال کنید، بهتر است از این فرایند (فقط فراموش نکنید که به طور منظم آن را به نسخه های جدیدترارتقا دهید ، چرا که آنها معمولا شامل راه حلهای امنیتی مهمی هستند).

مسائل مربوط به اتصال به سرور

در حالی که ممکن است ساده به نظر برسد، کاملا ممکن است که خطای ۵۰۳ Service Unavailable به سادگی نشان دهد که یک سرور در جایی در زنجیره ای به دلایلی خاموش یا غیر قابل دسترس است. اکثر برنامه های مدرن بر روی یک سرور مجزا قرار نمی گیرند، بلکه می توانند بر روی سیستم های چندگانه گسترش یابند یا حتی به بسیاری از سرویس های شخص ثالث نیز عمل کنند. اگر هر یک از این سرورها برای تعمیر و نگهداری یا در غیر این صورت غیرقابل دسترس باشد، ممکن است خطایی رخ دهد که به نظر برسد از درخواست شما باشد.

پیکربندی فایروال نامناسب

فایروال یک دستگاه امنیتی پایه ای است که ترافیک شبکه را نظارت می کند و به عنوان یک دروازه بان عمل می کند، تصمیم می گیرد که کدام ترافیک امن است و یا می تواند مخرب باشد. در بیشتر موارد، تمام ترافیک بالقوه مضر متوقف شده است. در برخی موارد، به طور کامل ممکن است فایروال پیکربندی شده در جایی در شبکه ای که برنامه شما در حال اجرا است، از رسیدن برخی از انواع ترافیک حیاتی جلوگیری کند. این به ویژه برای برنامه های کاربردی ایست که در شبکه های تحویل محتوا (CDNُُُs) تکیه می کنند، که به عنوان یک میزبان ثالث برای محتوای سنگین نظیر تصاویر یا ویدیو عمل می کنندو میزبانی این محتوا را از طرف برنامه شما انجام می دهند، بنابراین برنامه شما می تواند سرعت  و بهره وری خود را حفظ کند.

با این حال، سرویس های فایروال اتوماتیک گاهی اوقات می توانند تشخیص‌های مثبت کاذب را انجام دهند و محتوای صحیح و معتبری را از CDNs یا سایر نقاط به عنوان مغرضانه تشخیص دهند و در نتیجه آن جریان محتوی را در یک لحظه قطع کنند که می‌تواند منجر به  خطای ۵۰۳ Service Unavailable شود .

بررسی لیست

تقریبا ً هر کاربرد وب، شکلی از log های سمت سرور را حفظ می‌کند . log ها نوعا ً تاریخچه کاری هستند که برنامه انجام می‌دهد ، از جمله کدام صفحات درخواست شده‌است ، که سرورها را به هم متصل می‌کند ، که نتایج پایگاه‌داده آن را ارایه می‌دهد و غیره . log های سرور مربوط به سخت‌افزار واقعی است که کاربرد را اداره می‌کند ، و اغلب جزئیات مربوط به سلامتی و وضعیت همه خدمات مرتبط ، و یا حتی خود سرور را ارایه می‌دهد . نام گوگل [ PLATFORM _ NAME ] را اگر از یک CMS استفاده می‌کنید ، یا ” log [ زبان PROGRAMMING ] ” و  ” log [ سیستم عملیاتی] ” را راه‌اندازی کنید ، تا اطلاعات بیشتری درباره پیدا کردن log سوال پیدا کنید .

کد کاربردی یا Bugs Script

اگر همه چیز موفق نباشد ، ممکن است یک مشکل در برخی کدهای سفارشی در برنامه شما وجود داشته باشد . سعی کنید تشخیص دهید که این مساله ممکن است از طریق تجزیه و تحلیل دستی درخواست شما ، همراه با تجزیه از طریق log ‌های برنامه و سرور ، حاصل شود . در حالت ایده‌آل ، یک کپی از کل برنامه را به یک ماشین توسعه محلی تبدیل کرده و یک فرآیند عیب‌یابی مرحله‌ای را اجرا کنید ، که به شما این امکان را می‌دهد که سناریوی دقیق را که در آن خطای ۵۰۳ Service Unavailable در حال حاضر کار اشتباهی رخ می‌دهد،بازسازی کنید .

 

سوالی دارید؟! در نظرات سوالتون رو مطرح کنید 🙂

مطالب مرتبط:

خطای ورژن جدید وردپرس چیست و چگونه آن را رفع کنیم؟

خطای ۵۰۲ یا Bad Gateway چیست

بررسی خطاهای رایج در وردپرس ( بخش دوم )

روش های رفع خطای صفحه سفید در سایت

منبع:‌ تیک تم – ارائه دهنده: قالب تجاری وردپرس – نسخه فارسی قالب Porto  –پشتیبانی وردپرس