چگونه خطای 504 وردپرس را رفع کنم – راهنمای کامل

خطای 504

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

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

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

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

پاسخ سرور شامل یکی از کدهای وضعیت HTTP است تا از این طریق وضعیت پاسخ به مرورگر را روشن کند. البته تمام کدهای وضعیت HTTP وضعیت خطا را نشان نمی‌دهند. برای مثال کد وضعیت 200 به معنای این است که درخواست با موفقیت پردازش شده و همه‌چیز خوب است.

کدهای وضعیت کلاس 5xx نشان از مشکلی در ارتباط با سرور دارند که سرور از رخداد آن آگاه است و نمی‌تواند پاسخ مشتری را انجام دهد. در این نوشته به صورت خلاصه در خصوص کدهای وضعیت HTTP صحبت کردیم.

به صورت رسمی پنج کد در کلاس 5xx قرار می‌گیرند (500, 501, 502, 503, 504). ممکن است که کدهای غیررسمی نیز به این لیست افزوده شوند (506, 507, 509, 520 و …).

IETF خطای 504 را اینگونه تعریف می‌کند:

کد وضعیت 504 (Gateway Timeout) نشان می‌دهد که سرور در حالیکه به عنوان یک مدخل یا پراکسی عمل می‌کند، پاسخ زمانبندی شده از سرور دست بالایی را که برای تکمیل درخواست بدان نیازمند است را دریافت نمی‌کند.

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

خطای 504 به اشکال مختلف به نمایش در می‌آید. خطای 504 یا خطای Gateway Timeout مشابه خطای 502 Bad Gateway است که نشان می‌دهد که سرور اول پاسخ نامعتبری از سرور دوم دریافت کرده است.

انواع خطای 504 Gateway Timeout

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

خطای 504

در زیر برخی از انواع خطای 504 را می‌بینید که ممکن است با آن برخورد کنید:

  • 504 Gateway Timeout
  • 504 Gateway Timeout NGINX
  • NGINX 504 Gateway Timeout
  • Gateway Timeout Error
  • Error 504
  • HTTP Error 504
  • HTTP Error 504 — Gateway Timeout
  • HTTP 504
  • 504 Error
  • Gateway Timeout (504)
  • This page isn’t working — Domain took too long to respond
  • 504 Gateway Time-out — The server didn’t respond in time
  • صفحه خالی سفید

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

اثر خطای 504 یا خطای Gateway Timeout بر سئو

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

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

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

اما اگر وبسایت شما برای بیش از ۶ ساعت از دسترس خارج شود، گوگل خطای 504 را به عنوان خطای جدی در سطح کل وبسایت در نظر می‌گیرد که نیاز به رفع فوری آن است. این اتفاق می‌تواند تاثیر جدی منفی بر روی سئو وبسایت شما بگذارد.

دلایل خطای 504 یا خطای Gateway Timeout

از آنجاییکه خطای 504 به دلیل timeout شدن بین سرورها رخ می‌دهد، این مشکل از دستگاه مشتری یا ارتباط اینترنتی ناشی نمی‌شود.

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

سرور دیگر همیشه یک سرور خارجی نیست (مثلا CDN یا مدخل API). می‌تواند موجودیتی مانند سرور در سرور وب اصلی باشد.

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

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

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

تلاش به بارگذاری دوباره صفحه

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

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

اگر انتظار و رفرش صفحه وبسایت نتواند مساله خطای 504 را رفع کند، می‌توانید از طریق کاربرهای دیگر از داون نبودن وبسایت خود اطمینان یابید. البته ابزارهای خوب دیگری نیز برای اینکار وجود دارند مانند Down for Everyone or Just Me و Is It Down Right Now.

ریبوت کردن دستگاه‌های شبکه

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

مسایل مربوط به DNS

خطای 504 می‌تواند به دلیل مسایل مربوط به DNS در سمت سرور یا سمت مشتری رخ دهد. محتمل‌ترین دلیل مساله DNS سمت سرور FQDN است. معمولا این اتفاق زمانی رخ می‌دهد که وبسایت وردپرس شما به تازگی به سرور یا میزبان جدیدی انتقال داده شده باشد. از این رو مهم است که برای اعمال تغییرات در DNS به مدت ۲۴ ساعت تامل کنیم.

برای بررسی این مساله می‌توانید از whatsmydns.net یا DNSMap برای بررسی وضعیت DNS وبسایت در سراسر جهان استفاده کنید.

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

اگر از ویندوز استفاده می‌کنید می‌توانید کش DNS را با باز کردن Command Prompt و درج دستور زیر پاک کنید:

ipconfig /flushdns

پس از درج این دستور و زدن دکمه اینتر بایستی با عبارت Successfully flushed the DNS resolver Cache روبرو شوید.

غیرفعال کردن موقت CDN وبسایت

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

اما اغلب CDNها قادر به فعال‌سازی این ویژگی به صورت پیش‌فرض نیستند چرا که کش محتوای پویا در اغلب وبسایت‌ها کاریست بسیار پیچیده.

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

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

مسایل مربوط به سرور یکی از معمول‌ترین دلایل ایجاد خطای 504 بر روی وبسایت است. از آنجاییکه اغلب وبسایت‌های وردپرس بر روی وب‌سرورهای Nginx یا Apache میزبانی می‌شوند بنابراین این سرورها منتظر پاسخ از چیزی هستند و timeout نیز در این فرآیند امریست محتمل.

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

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

زیرساخت کند سرور

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

مسایل مربوط به فایروال

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

مسایل مربوط به ارتباط شبکه

مسایل مربوط به ارتباط شبکه بین پراکسی‌سرور و وب‌سرور می‌تواند باعث ایجاد تاخیر در پاسخ درخواست‌های HTTP شود.

اسپم، بات‌ها یا حملات DDoS

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

می‌توانید ترافیک سرور را مرور و تحلیل کرده تا به الگوهایی در خصوص ترافیک غیرعادی دست یابید.

در نظر داشته باشید که وبسایت‌های فروشگاهی وردپرس که از ووکامرس استفاده می‌کنند درخواست‌های زیاد دست‌نیافتنی برای ویژگی‌هایی مانند سبد خرید یا روند پرداخت ایجاد می‌کنند.

پایگاه‌داده معیوب وردپرس

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

تعمیر پایگاه‌داده وردپرس بستگی به مشکلی دارد که با آن درگیر هستید. افزونه‌هایی مانند WP-DBManager عیب‌یابی مشکلات پایگاه‌داده و تعمیر آنها را آسان کرده است.

بررسی افزونه‌ها و پوسته‌های وبسایت

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

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

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

بررسی گزارشات خطا

با مشاهده گزارشات یا لاگ‌های خطا error logs می‌توانید سرنخ‌هایی در خصوص دلیل خطای 504 بر روی وردپرس خود بیابید.

اگر میزبان شما از این ابزار پشتیبانی نمی‌کند می‌توانید حالت عیب‌یابی را بر روی وردپرس خود فعال کنید. با استفاده از این روش می‌توانید وضعیت عیب‌یابی بر روی وردپرس را فعال کنید. اینکار باعث ذخیره شدن خطاها در فایلی به نام debug.log در پوشه /wp-content/ وردپرس‌تان می‌شود. اگر چنین فایلی را نمی‌بینید می‌توانید آن را بسازید.

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *