سایتی را باز میکنید و صفحهای تقریباً خالی میبینید: 503 Service Temporarily Unavailable با حروف درشت و زیر آن nginx. سایتی دیگر Service Unavailable نشان میدهد و علت را نگهداری یا کمبود ظرفیت سرور میداند. در گوگل کروم ممکن است بهجای آن صفحه خطای خود مرورگر را ببینید، «این صفحه کار نمیکند»، و در پایین آن HTTP ERROR 503.
همه اینها یک کد وضعیت HTTP هستند و در میان خطاهای سرور، امیدوارکنندهترینشان: خود سرور میگوید مشکل موقتی است. در ادامه میخوانید این کد یعنی چه، صفحه را چه کسی فرستاده است، بازدیدکنندهها و صاحبان سایت چه کاری میتوانند بکنند، نگهداری سایت را چگونه بدون آسیب به جایگاه آن در جستوجو برنامهریزی کنید و 503 برای اسکریپتها و پروکسیها چه معنایی دارد.
خطای 503 Service Unavailable یعنی چه؟
503 یعنی سرور درخواست شما را دریافت کرده اما فعلاً از رسیدگی به آن خودداری میکند. استاندارد HTTP، یعنی RFC 9110، بخش 15.6.4، دو علت را نام میبرد: بار بیش از حد موقتی یا نگهداری برنامهریزیشده، که انتظار میرود هر دو پس از مدتی برطرف شوند. مانند هر کدی که با 5 شروع میشود، 503 خطای سرور است.
آنچه 503 را متمایز میکند این است که از ابتدا موقتی تعریف شده است. 500 میگوید چیزی خراب شده؛ 503 میگوید «الان نه». سرور میتواند هدر Retry-After را اضافه کند، سطری اضافه که همراه پاسخ فرستاده میشود و میگوید کی برگردید: تعدادی ثانیه (Retry-After: 120 یعنی دو دقیقه) یا یک تاریخ. مرورگر آن را نشان نمیدهد، اما اسکریپتها، برنامهها و خزندههای موتورهای جستوجو میتوانند آن را بخوانند.
آیا خطای 503 تقصیر شماست؟
تقریباً هرگز. اتصال شما درخواست را رسانده و سرور به آن پاسخ داده است، فقط نه با صفحه؛ پس راهاندازی دوباره روتر چیزی را تغییر نمیدهد.
ترافیک خود شما فقط در یک حالت نقش دارد: محدودیت نرخ (rate limit). برخی سرورها به درخواستهای بیش از حد از یک آدرس آیپی، بهجای کد دقیقتر 429 Too Many Requests، با 503 پاسخ میدهند؛ پس صفحهای که پشت سر هم بارگذاری میشود، یا یک اسکریپت، میتواند آن را فعال کند. پشت شبکه یک اداره یا یک اپراتور موبایل که یک آدرس عمومی را میان افراد بسیاری تقسیم میکند، درخواستهای دیگران هم شمرده میشوند. 429 Too Many Requests چیست؟ خطای Rate Limit و رفع آن نشان میدهد این محدودیتها چگونه شمرده میشوند.
VPN یا پروکسی هم وقتی زیر بار بیش از حد باشد یا نتواند به سایت برسد، ممکن است خودش یک 503 بفرستد.
خطای 503 گامبهگام چگونه رخ میدهد؟
- مرورگر شما به سرور جلویی سایت میرسد: یک وبسرور مانند nginx، Apache یا IIS، یک متعادلکننده بار (load balancer) که بازدیدکنندگان را میان چند سرور پخش میکند، یا یک CDN (شبکه توزیع محتوا، سرویسی که از مکانهای بسیاری بهجای سایت پاسخ میدهد).
- سرور جلویی بررسی میکند که آیا میتواند درخواست را بپذیرد. آیا برنامه اجرا میشود، آیا یک فرایند کارگر (worker) آزاد است، آیا صف به اندازه کافی کوتاه است، آیا حالت نگهداری روشن است، آیا این آدرس از سقف درخواستها گذشته است؟
- یکی از بررسیها شکست میخورد، مثلاً یک استخر برنامه (application pool) متوقفشده یا کلید نگهداریای که روشن مانده است.
- سرور با 503 پاسخ میدهد، اغلب همراه
Retry-Afterو یک صفحه کوتاه. - مرورگر شما آن صفحه را نشان میدهد، یا اگر 503 بدون صفحه رسیده باشد، صفحه خطای خودش را.
صفحه 503 چه شکلی دارد و چه کسی آن را فرستاده است؟
متن صفحه نشان میدهد کدام برنامه درخواست را رد کرده است و همین به صاحب سایت میگوید کجا را بگردد.
| آنچه میبینید | فرستنده | معنای معمول |
|---|---|---|
503 Service Temporarily Unavailable و زیر آن nginx | nginx | یک محدودیت درخواست یا یک قاعده نگهداری |
Service Unavailable و …due to maintenance downtime or capacity problems | Apache httpd | اغلب Apache نتوانسته به برنامه پشت خود برسد |
503 Service Unavailable و No server is available to handle this request. | HAProxy، یک متعادلکننده بار | همه سرورهای پشت آن خاموش یا پرند |
Error 503 Backend fetch failed، Guru Meditation و یک XID | Varnish، یک سرور کش | نتوانسته صفحه را از سرور سایت بگیرد |
Service Unavailable و HTTP Error 503. The service is unavailable. | IIS روی ویندوز سرور | استخر برنامه متوقف شده یا زیر بار بیش از حد است |
| «جهت انجام عملیات تعمیرات زمانبندی شده برای مدت کوتاهی در دسترس نیست. یک دقیقه دیگر مراجعه کنید.» | وردپرس | یک بهروزرسانی در حال اجراست یا نیمهکاره مانده است |
| «این صفحه کار نمیکند» و HTTP ERROR 503 | گوگل کروم | 503 با صفحهای خالی رسیده است |
متنهای سرورها از کد منبع یا مستندات هر برنامه آمدهاند. سطر آخر را با یک سرور آزمایشی کوچک روی رایانه خودمان بررسی کردیم: برای یک 503 خالی، Chromium 145 با زبان فارسی «این صفحه کار نمیکند»، «localhost درحال حاضر نمیتواند این درخواست را انجام دهد.»، HTTP ERROR 503 و دکمه بار کردن مجدد را نشان داد؛ اما 503 همراه یک صفحه نگهداری، بهجای آن همان صفحه را نشان داد.
تفاوت 500، 502، 503 و 504 چیست؟
هر چهار کد خطای سرور هستند، اما فقط 503 موقتی تعریف شده است؛ سه کد دیگر خرابیای را توصیف میکنند که تا وقتی چیزی درست نشود ادامه دارد.
| کد | نام | چه رخ داده است | ذاتاً موقتی؟ |
|---|---|---|---|
500 | Internal Server Error | برنامه به خطا خورده است | نه |
502 | Bad Gateway | دروازه پاسخی خراب گرفته یا اصلاً پاسخی نگرفته | نه |
503 | Service Unavailable | سرور فعلاً کار را نمیپذیرد | بله |
504 | Gateway Timeout | دروازه بیش از حد منتظر پاسخ مانده است | نه |
دروازه (gateway) سرور جلویی است که درخواستها را به برنامه پشت خود میرساند. در عمل این کدها همپوشانی دارند: همان برنامه متوقفشده پشت nginx به شکل 502 و پشت Apache یا HAProxy به شکل 503 دیده میشود. خطای 502 Bad Gateway چیست و چگونه رفع میشود؟ سمت دروازه را توضیح میدهد.
چه چیزی باعث خطای 503 میشود؟
سرور وقتی 503 میفرستد که تصمیم بگیرد رد کردن یک درخواست بهتر از تلاش و شکست است. محرکهای معمول:
- جهش ترافیک. یک حراج، یک خبر یا موجی از رباتها بیش از تعداد فرایندهای کارگر درخواست میآورد؛ رد کردن درخواستهای اضافه مانع میشود سرور برای همه از کار بیفتد.
- نگهداری برنامهریزیشده. صاحب سایت صفحه نگهداری را روشن کرده، یا نرمافزار هنگام بهروزرسانی این کار را کرده است. وردپرس تا وقتی بهروزرسانی در حال اجراست، به هر درخواست با 503 و
Retry-After: 600پاسخ میدهد. - برنامهای متوقفشده. برنامهای که صفحهها را میسازد از کار افتاده یا هرگز راه نیفتاده است. در IIS این وضعیت به شکل یک استخر برنامه متوقفشده دیده میشود، یعنی گروهی از فرایندهای کارگر که یک سایت را اجرا میکنند.
- هیچ سرور سالمی پشت متعادلکننده بار نیست. HAProxy وقتی هیچ سروری در دسترس نباشد با 503 پاسخ میدهد، یا وقتی همه سرورها به سقف اتصال خود رسیدهاند و یک درخواست بیش از تنظیم
timeout queueدر صف منتظر مانده است. - محدودیت نرخ. محدودکننده درخواست nginx درخواستهای بالاتر از حد را با 503 رد میکند، مگر اینکه کد دیگری تنظیم شده باشد (
limit_req_status). اگر 503 فقط به یک بازدیدکننده یا یک اسکریپت برسد، معمولاً پای یک محدودیت در میان است، نه یک قطعی. - یک وابستگی از کار افتاده است. برخی برنامهها وقتی پایگاه داده یا سرویس دیگری که به آن تکیه دارند در دسترس نیست، با 503 پاسخ میدهند.
بهعنوان بازدیدکننده چه کاری از دستتان برمیآید؟
- چند دقیقه صبر کنید، سپس یک بار صفحه را دوباره بارگذاری کنید. اگر صفحه زمانی را نام میبرد، مانند «یک دقیقه دیگر مراجعه کنید» در وردپرس، به همان عمل کنید. بارگذاری دوباره در هر چند ثانیه فقط بار را بیشتر میکند.
- ببینید سایت برای همه از دسترس خارج است یا نه. سایت را در گوشی خود با داده تلفن همراه باز کنید. سرویسهای بزرگ قطعیها را در یک صفحه وضعیت (status page) اعلام میکنند: صفحه اپل System Status (وضعیت سیستم) نام دارد و صفحه مایکروسافت، صفحه service health status (وضعیت سلامت سرویس) است.
- VPN یا پروکسی خود را خاموش کنید. اگر صفحه بدون آن باز شد، 503 از سرور VPN آمده بود، یا سایت ترافیک آن آدرس را محدود میکند.
- اگر فقط شما خطا میگیرید، آهستهتر پیش بروید. دیگر صفحه را تازه نکنید، برنامههای مدیریت دانلود را متوقف کنید و دنبال افزونهای بگردید که زبانهها را خودکار دوباره بارگذاری میکند. محدودیت نرخ معمولاً در عرض چند دقیقه برطرف میشود.
- آن را گزارش دهید، همراه زمان، آدرس و هر چیزی که روی صفحه چاپ شده است، مانند XID در صفحه Varnish.
پاک کردن کش بهندرت کمک میکند: مرورگر یک 503 را برای بعد نگه نمیدارد، مگر اینکه سرور صریحاً اجازه دهد؛ پس هر بارگذاری دوباره، دوباره از سرور میپرسد.
اگر سایت متعلق به شماست: خطای 503 را چگونه رفع کنید؟
نخست پیدا کنید کدام لایه پاسخ داده است: متن صفحه، جدول بالا و هدر پاسخ server معمولاً آن را نام میبرند.
- دنبال کلید نگهداریای بگردید که هنوز روشن است. وردپرس هنگام بهروزرسانی یک فایل
.maintenanceدر پوشه ریشه سایت میگذارد و وقتی ده دقیقه از عمر این فایل بگذرد، نگهداری را تمامشده میداند؛ حذف آن نگهداری را بیدرنگ پایان میدهد. قاعده نگهداری در وبسرور یا CDN شما را باید دستی برداشت. - مطمئن شوید برنامه اجرا میشود. سرویس یا کانتینر را دوباره راه بیندازید و علت از کار افتادن را در لاگ آن بخوانید. وقتی برنامه پشت Apache اتصال نمیپذیرد، Apache سطر
AH01114: HTTP: failed to make connection to backendرا در لاگ مینویسد. - در IIS، استخر برنامه را بررسی کنید. در IIS Manager بخش Application Pools (استخرهای برنامه) را باز کنید: استخری با وضعیت Stopped (متوقف) به هر درخواست با 503 پاسخ میدهد. محافظت از خرابی سریع (rapid-fail protection) بهطور پیشفرض پس از پنج بار از کار افتادن فرایند کارگر در پنج دقیقه، استخر را متوقف میکند؛ لاگ رویداد System علت را میگوید. فهرست کدهای وضعیت IIS در سایت مایکروسافت زیرکدها را توضیح میدهد، از 503.0 برای استخر متوقفشده تا 503.4 برای صف پر FastCGI.
- لاگ HTTP.sys را در ویندوز بخوانید. درخواستهایی که پیش از رسیدن به IIS رد میشوند در
%SystemRoot%\System32\LogFiles\HTTPERRثبت میشوند و علتهایی مانندAppOffline،DisabledیاQueueFullدر آخرین فیلد هر سطر آمده است. - بررسیهای سلامت (health check) متعادلکننده بار را بیازمایید. بررسیای که شکست میخورد در حالی که برنامه کار میکند، همه سرورها را از چرخه خارج میکند و آن وقت HAProxy میگوید هیچ سروری در دسترس نیست.
- ظرفیت را بالا ببرید، یا محدودیتهایی را که به آدمهای واقعی میخورند شل کنید. اگر 503 در ساعتهای اوج ظاهر میشود، فرایند کارگر اضافه کنید، صفحههای پربازدید را کش کنید یا سرور اضافه کنید. اگر کاربرانی در ادارهها یا روی داده تلفن همراه به محدودیت نرخ شما میخورند، سهم جهش (burst) را بیشتر کنید و پاسخ دادن با 429 را در نظر بگیرید.
ابزار پایشی که هر دقیقه چند صفحه کلیدی را بارگذاری کند، پیش از مشتریان به شما هشدار میدهد. برای اینکه ببینید آیا فقط یک منطقه 503 میگیرد، مثلاً بازدیدکنندگانی که به یک مکان CDN هدایت میشوند، همان بررسی را از خروجیهای پروکسی مسکونی در چند کشور اجرا کنید.
سایت را چگونه برای نگهداری از دسترس خارج کنید بیآنکه به سئو آسیب بزند؟
با 503 و هدر Retry-After پاسخ دهید. صفحه «بهزودی برمیگردیم» که با 200 OK فرستاده شود به موتورهای جستوجو میگوید متن نگهداری محتوای صفحه است؛ 404 به آنها میگوید صفحه حذف شده است.
راهنمای گوگل برای توقف موقت یک وبسایت برای تعطیلیهای فوری یک تا دو روزه، یک صفحه اطلاعرسانی با 503 را توصیه میکند، همراه Retry-After با تاریخ یا مدتی که تا حد امکان درست باشد، و آن را راهکاری برای حداکثر چند روز میداند. همین راهنما هشدار میدهد که هرگز برای robots.txt، یعنی فایلی که به خزندهها میگوید چه چیزی را میتوانند بگیرند، 503 برنگردانید، چون این کار همه خزش را متوقف میکند.
خزندههای گوگل وقتی سایتی خطاهای 5xx برمیگرداند کندتر میشوند و وقتی صفحهها دوباره عادی پاسخ دهند، بهتدریج سرعت میگیرند؛ آدرسهایی که پیوسته خطای سرور برمیگردانند سرانجام از ایندکس حذف میشوند. صفحه نگهداری را به شکل یک فایل ایستا از خود وبسرور ارائه کنید، نه از برنامهای که در حال بهروزرسانی آن هستید.
سطح پیشرفته: 503 و هدر Retry-After را با curl ببینید
این بخش برای کسانی است که با خط فرمان راحتاند. curl در ویندوز 10، ویندوز 11 و مک از پیش نصب است؛ در PowerShell ویندوز بهجای آن curl.exe بنویسید. سرور آزمایشی کوچک Node.js ما به هر درخواست با 503، Retry-After: 120 و یک صفحه نگهداری یکسطری پاسخ میدهد؛ آن را با curl 8.22.0 روی ویندوز 11 فراخواندیم:
curl -sSi http://localhost:8503/HTTP/1.1 503 Service Unavailable
Retry-After: 120
Content-Type: text/html; charset=utf-8
Cache-Control: no-store
Date: Sun, 15 Nov 2026 15:44:44 GMT
Connection: keep-alive
Keep-Alive: timeout=5
Transfer-Encoding: chunked
<!doctype html><title>Down for maintenance</title><h1>Down for maintenance</h1><p>Back in about two minutes.</p>گزینه -i سطر وضعیت و هدرها را بالای صفحه چاپ میکند؛ -sS نوار پیشرفت را پنهان میکند اما پیامهای خطا را نگه میدارد. Retry-After: 120 از کلاینتها میخواهد دو دقیقه صبر کنند و Cache-Control: no-store مانع میشود مرورگرها و کشها خطا را ذخیره کنند. فرمان را روی سایت خودتان اجرا کنید تا ببینید واقعاً چه میفرستد.
خطای 503 برای اسکرپرها و کاربران پروکسی چه معنایی دارد؟
برای یک اسکریپت یا اسکرپر (برنامهای که داده صفحهها را خودکار جمع میکند)، 503 درخواستی است برای اینکه بعداً برگردد و پاسخ درست دقیقاً همین است. اگر Retry-After وجود دارد، همان مدت صبر کنید و همه درخواستها به آن سایت را متوقف کنید، نه فقط درخواستی را که شکست خورد. اگر نیست، فاصله را هر بار دو برابر کنید (عقبنشینی نمایی): یک ثانیه، سپس دو، چهار و هشت ثانیه، با کمی تصادفیسازی، و پس از چند تلاش متوقف شوید. سپس تعداد درخواستهای موازی را کم کنید.
اگر 503 فقط وقتی ظاهر میشود که خزنده شما سرعت میگیرد، در عمل با یک محدودیت نرخ روبهرو هستید. آنقدر سرعت را کم کنید که خطا قطع شود؛ عوض کردن آدرس آیپی برای حفظ همان سرعت، خواسته سایت را نادیده میگیرد.
از طریق پروکسی، نخست ببینید 503 را چه کسی فرستاده است. اگر خود پروکسی آن را ساخته باشد، سایت هرگز درخواست شما را ندیده و curl عبارت CONNECT tunnel failed, response 503 را چاپ میکند؛ Squid، یک سرور پروکسی رایج، وقتی نتواند نشانی سایت را از روی نامش پیدا کند همین کار را میکند. 503 خود سایت از تونلی سالم و همراه صفحه خود سایت میرسد؛ پس نخست URL را بدون پروکسی بیازمایید.
اگر بدنه 503 بهجای اطلاعیه نگهداری یک صفحه چالش (challenge page) باشد، یعنی صفحهای که پیش از نشان دادن سایت بازدیدکننده را میسنجد، این تصمیمی درباره ترافیک شماست، نه یک قطعی. کدهای وضعیت HTTP در وب اسکرپینگ: 403، 407، 429، 503 نشان میدهد این دو را چگونه از هم جدا کنید، همراه یک تابع تلاش دوباره آزموده که Retry-After را میخواند.
کجا ممکن است با 503 روبهرو شوید
- برنامههای ابری مانند OneDrive یا SharePoint، هنگام یک حادثه در سمت سرویس.
- فروش بلیت، عرضه محصولات و اعلام نتایج آزمونها، در دقیقههای نخست پس از آغاز.
- سایتهای وردپرسی، در حالی که بهروزرسانی یک افزونه، پوسته یا هسته در حال اجراست.
- اسکریپتهای خودتان، وقتی محدودیت نرخ یک سایت بهجای 429 از 503 استفاده میکند.
اشتباههای رایج
- بارگذاری دوباره در هر چند ثانیه، یعنی یک درخواست دیگر برای سروری که همین حالا هم کار را رد میکند.
- صاحبان سایت: صفحه نگهداری با وضعیت 200، که موتورهای جستوجو آن را محتوای صفحه میپندارند.
- صاحبان سایت: رها کردن 503 برای چند هفته. گوگل آن را راهکاری برای چند روز میداند.
- صاحبان سایت: پاسخ دادن به
robots.txtبا 503، که همه خزش را متوقف میکند. - اسکریپتها: نادیده گرفتن
Retry-Afterیا عوض کردن آیپیها برای گذشتن از یک محدودیت.
راهنمای انتخاب
| وضعیت شما | چه کنید |
|---|---|
| صفحه 503 در یک سایت، سایتهای دیگر باز میشوند | چند دقیقه صبر کنید و یک بار دوباره بارگذاری کنید |
| با داده تلفن همراه هم باز نمیشود | سایت از دسترس خارج است؛ صفحه وضعیت آن را ببینید |
| صفحه از نگهداری برنامهریزیشده خبر میدهد | در زمانی که اعلام کرده برگردید |
| فقط شما خطا میگیرید، پس از بارگذاریهای زیاد | چند دقیقه دست نگه دارید و افزونهها را بررسی کنید |
| با خاموش کردن VPN باز میشود | برای این سایت VPN را خاموش نگه دارید |
| سایت وردپرسی شما در حالت نگهداری گیر کرده است | .maintenance را در ریشه سایت حذف کنید |
| سایت IIS شما، استخر وضعیت Stopped نشان میدهد | علت از کار افتادن را در لاگ رویداد رفع کنید و استخر را راه بیندازید |
اسکریپت شما 503 همراه Retry-After میگیرد | همان مدت برای کل سایت صبر کنید و همروندی را کم کنید |
پرسشهای متداول
آیا خطای 503 Service Unavailable تقصیر من است؟
معمولاً نه: سرور زیر بار بیش از حد است، در حال نگهداری است یا عمداً کار را رد میکند. استثنا محدودیت نرخ است. اگر صفحهای را بارها بارگذاری کنید یا اسکریپتی اجرا کنید، سایت ممکن است تا وقتی سرعت را کم نکردهاید با 503 پاسخ دهد.
خطای 503 چقدر طول میکشد؟
به علت آن بستگی دارد. جهش ترافیک یا راهاندازی دوباره در چند ثانیه یا چند دقیقه میگذرد، نگهداری برنامهریزیشده به اندازه خود کار طول میکشد و Retry-After، اگر باشد، برآورد خود سرور را میدهد. از کار افتادنی که کسی متوجهش نشده میتواند ساعتها ادامه داشته باشد.
چرا OneDrive، SharePoint یا سرویسهای اپل خطای 503 Service Unavailable نشان میدهند؟
برنامههای آنها همه چیز را از سرورهای سرویس میگیرند و هنگام حادثه یا نگهداری، آن سرورها با 503 پاسخ میدهند. مشکل در سمت سرویس است: صفحه service health status مایکروسافت یا صفحه System Status اپل را ببینید و بعداً دوباره امتحان کنید.
پیام No server is available to handle this request یعنی چه؟
این صفحه 503 داخلی HAProxy است. HAProxy یک متعادلکننده بار جلوی سایت است و همه سرورهای پشت آن خاموش بودهاند، در بررسی سلامت شکست خوردهاند یا بیش از حد مشغول بودهاند. فقط گردانندگان سایت میتوانند آن را رفع کنند.
پیام Error 503 Backend fetch failed یعنی چه؟
این صفحه خطای پیشفرض Varnish است، یک سرور کش که جلوی بسیاری از سایتها قرار دارد: نتوانسته صفحه را از سرور خود سایت بگیرد. XID زیر Guru Meditation به مدیران کمک میکند درخواست را در لاگهایشان پیدا کنند.
آیا خطای 503 به رتبه سایت در گوگل آسیب میزند؟
یک 503 کوتاه نه؛ خزندههای گوگل کند میشوند و بعداً برمیگردند و به همین دلیل 503 کد درست برای نگهداری برنامهریزیشده است. اگر صفحهها چندین روز پشت سر هم 503 برگردانند، گوگل سرانجام آنها را از ایندکس حذف میکند.
خلاصه
خطای 503 Service Unavailable یعنی سرور در دسترس است اما فعلاً کار را رد میکند، به خاطر بار بیش از حد، نگهداری یا یک محدودیت، و Retry-After ممکن است بگوید تا کی. بازدیدکنندهها صبر میکنند، یک بار صفحه را دوباره بارگذاری میکنند و صفحههای وضعیت را میبینند. صاحبان سایت لایهای را که پاسخ داده پیدا میکنند و برنامه متوقفشده، مجموعه خالی سرورهای پشتی، محدودیت تنگ یا کلید نگهداری فراموششده را درست میکنند. اسکریپتها از Retry-After پیروی میکنند و سرعت را کم میکنند. انواع پروکسی برای پایش و جمعآوری داده را در صفحه پروکسی ما مییابید.




