خطای 504 Gateway Timeout چیست؟ علت‌ها و روش‌های رفع آن

زمان مطالعه: 5 دقیقه

وقتی وارد یک وب‌سایت می‌شوید اما به‌جای محتوای صفحه با پیام خطای 504 Gateway Timeout مواجه می‌شوید، معمولاً مشکلی در دریافت پاسخ به‌موقع از یکی از سرورهای مسیر ارتباطی وجود دارد. این خطا ممکن است موقتی باشد یا به مشکلاتی مانند کندی سرور، افزایش ترافیک، اجرای پردازش‌های سنگین و تنظیمات نادرست ارتباط بین سرویس‌ها مربوط شود. برای مدیران سایت، تکرار این خطا می‌تواند دسترسی کاربران را مختل کند و تجربه کاربری را تحت تأثیر قرار دهد.

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

خطای 504 Gateway Timeout
خطای 504 Gateway Timeout

خطای 504 Gateway Timeout چیست؟

خطای 504 یک کد وضعیت HTTP است که نشان می‌دهد یک سرور در نقش دروازه یا پراکسی (Gateway یا Proxy) از سرور دیگری که برای تکمیل درخواست به آن نیاز داشته، در مدت‌زمان مجاز پاسخ دریافت نکرده است.

برای مثال، تصور کنید کاربری صفحه‌ای از وب‌سایت شما را باز می‌کند. درخواست او ممکن است ابتدا به یک CDN یا پراکسی برسد و سپس به وب‌سرور و برنامه سایت منتقل شود. اگر یکی از سرورهای میانی نتواند پاسخ سرور بعدی را به‌موقع دریافت کند، ممکن است خطای 504 نمایش داده شود.

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

علت‌های رایج خطای 504

برای رفع خطای 504 Gateway Timeout، ابتدا باید علت احتمالی آن را مشخص کنید. این خطا می‌تواند از چند بخش مختلف زیرساخت یا نرم‌افزار ناشی شود.

کند بودن سرور اصلی

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

افزایش ترافیک و مصرف منابع سرور

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

مشکلات شبکه و DNS

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

البته هر مشکل DNS مستقیماً به خطای 504 منجر نمی‌شود؛ اما اگر سرور واسط نتواند مقصد صحیح را پیدا کند یا ارتباط پایداری با آن برقرار کند، ممکن است درخواست با خطا مواجه شود.

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

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

افزونه‌ها و کدهای سنگین در وردپرس

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

اگر خطای 504 بعد از نصب یا به‌روزرسانی یک افزونه ظاهر شده باشد، بررسی همان تغییر یکی از نقاط شروع مناسب برای عیب‌یابی است.

چگونه خطای 504 Gateway Timeout را رفع کنیم؟

روش رفع خطای 504 به این بستگی دارد که بازدیدکننده سایت هستید یا به تنظیمات سرور دسترسی دارید. مراحل زیر را به‌ترتیب انجام دهید تا بدون ایجاد تغییرات غیرضروری، علت مشکل را پیدا کنید.

صفحه را دوباره بارگذاری کنید

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

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

وضعیت اتصال اینترنت را بررسی کنید

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

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

کش مرورگر و CDN را بررسی کنید

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

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

منابع و لاگ‌های سرور را بررسی کنید

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

برای سرورهای لینوکسی که از systemd استفاده می‌کنند، دستور زیر گزارش‌های سرویس Nginx را نمایش می‌دهد؛ البته نام سرویس باید با تنظیمات واقعی سرور مطابقت داشته باشد.

				
					sudo journalctl -u nginx --since "30 minutes ago"
				
			

این دستور برای بررسی رویدادهای ۳۰ دقیقه اخیر سرویس Nginx است. اگر وب‌سرور شما Apache یا سرویس دیگری است، باید لاگ همان سرویس را بررسی کنید. بسته به نوع نصب، فایل‌های لاگ Nginx معمولاً در مسیرهایی مانند /var/log/nginx/ قرار دارند.

در گزارش‌ها به پیام‌هایی مانند upstream timed out، خطاهای اتصال و زمان رخ دادن مشکل توجه کنید. این پیام‌ها می‌توانند سرنخ مهمی برای پیدا کردن علت باشند.

تنظیمات PHP و وب‌سرور را بررسی کنید

اگر درخواست‌ها به دلیل اجرای طولانی برنامه PHP با تأخیر مواجه می‌شوند، باید زمان اجرای پردازش، وضعیت PHP-FPM، کوئری‌های پایگاه داده و محدودیت‌های وب‌سرور را بررسی کنید.

افزایش مقادیر مربوط به زمان انتظار همیشه راه‌حل مناسبی نیست؛ زیرا ممکن است فقط نمایش خطا را به تأخیر بیندازد و فشار بیشتری به سرور وارد کند. ابتدا باید مشخص شود چرا درخواست بیش از حد طول می‌کشد.

اگر علت، اجرای یک عملیات سنگین است، بهینه‌سازی کد، اصلاح کوئری پایگاه داده یا انتقال کارهای زمان‌بر به پردازش‌های پس‌زمینه می‌تواند مؤثرتر باشد.

افزونه‌ها و قالب وردپرس را بررسی کنید

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

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

اگر خطا هنگام ذخیره نوشته، بارگذاری تصویر یا اجرای یک عملیات خاص رخ می‌دهد، زمان وقوع و نوع درخواست را ثبت کنید. این اطلاعات به تشخیص مشکل در PHP، پایگاه داده یا محدودیت‌های سرور کمک می‌کند.

تفاوت خطای 504 با خطاهای 502 و 503

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

کد خطا
مفهوم
علت احتمالی
502 Bad Gateway
سرور واسط پاسخ نامعتبر از سرور بالادستی دریافت کرده است.
پاسخ نامعتبر یا اختلال در ارتباط با سرور اصلی
503 Service Unavailable
سرویس در حال حاضر قادر به پاسخ‌گویی نیست.
تعمیرات، اضافه‌بار یا در دسترس نبودن موقت سرویس
504 Gateway Timeout
سرور واسط در زمان مجاز پاسخ سرور بالادستی را دریافت نکرده است.
تأخیر در پردازش یا ارتباط میان سرویس‌ها

برای مثال، اگر سرور اصلی در دسترس باشد اما یک درخواست بسیار طولانی اجرا شود، ممکن است خطای 504 رخ دهد. در مقابل، خطای 503 می‌تواند نشان دهد سرویس موقتاً امکان پاسخ‌گویی ندارد.

بدون دیدگاه

دیدگاهتان را بنویسید

هاستvpsسرور اختصاصی