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

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

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

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

رفع خطای 504 gateway timeout

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

کلاس 5xx یکی از کدهای وضعیت HTTP نشان می دهد چیزی در سرور اشتباه است، و به این معنی است تنها چیزی که می داند همین است و نمی تواند آن چیزی که کاربر درخواست کرده را انجام دهد.

به طور رسمی ، پنج کد وضعیت در کلاس 5xx مشخص شده است ( 500 ، 501 ، 502 ، 503 ، 504). ممکن است با کدهای غیررسمی زیادی نیز روبرو شوید ( 506 ، 507 ، 509 ، 520 و غیره).

گروه The Internet Engineering Task Force یا IETF خطای 504  را چنین تعریف می کند :

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

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

خطای ارور تایم اوت به اشکال مختلف ظاهر می شود. در اینجا چند روش نشان داده شده است:

ارور۵۰۴

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

ارور تایم اوت

نمایش خطای 504 به اشکال مختلف

مرورگر مانند هر خطای دیگر ارور۵۰۴ را در داخل خود نشان می دهد. از آنجا که انواع مختلفی از سیستم عامل ها ، وب سرورها ، مرورگرها و user agent ها وجود دارد ، می تواند به روش های مختلفی نشان داده شود.

  • 504 Gateway Timeout
  • 504 Gateway Timeout NGINX
  • NGINX 504 Gateway Timeout
  • Gateway Timeout Error
  • خطای 504 (Error 504)
  • خطای HTTP 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 از لودشدن یک صفحه سایت جلوگیری می کند ، و این باعث ضربه خوردن تجربه کاربری شوند. از این رو ، موتورهای جستجو مانند Google این خطاها را جدی می گیرند. اگر این خطا برای مدت طولانی ادامه داشته باشد ، حتی ممکن است منجر به حذف شدن صفحه وب از نتایج موتور جستجو شود.

به عنوان مثال ، هنگامی که رباتهای گوگل با خطای 503 Service Unavailable مواجه می شوند ، می فهمند که این یک مسئله موقتی است زیرا بیشتر برای فعال کردن حالت تعمیر و نگهداری سایت استفاده می شود . بنابراین ، آنها سعی می کنند بعداً بعدا دوباره صفحه را بررسی کنند.

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

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

خطای 504 در سرچ کنسول

Google Search Console یکی از بهترین ابزارهای سئو برای نظارت بر خطاهای HTTP 5xx وب سایت شماست.

دلایل خطای 504 چیست؟

از آنجا که خطای 504 به دلیل تایم اوت بین سرورها است، ممکن این مشکل مربوط به دستگاه بازدیدکننده سایت(کامپیوتر، گوشی و…) یا اینترنت باشد یا نه!

یک خطای Gateway Timeout Error نشان می دهد که سرور مدت زیادی منتظر پاسخ از سرور دیگر بوده است و “تایم اوت” اتفاق افتاده است. دلایل زیادی برای این تایم اوت وجود دارد: سرور دیگر به درستی کار نمی کند ، بیش از حد ترافیک دارد یا از کار افتاده است.

سرور دیگر همیشه یک سرور خارجی نیست(به عنوان مثال CDN ، API gateway) بلکه می تواند یک سرور داخلی باشد (به عنوان مثال سرور پایگاه داده).

رفع خطای 504 gateway timeout

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

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

1- رفرش مجدد صفحه

یکی از اولین مواردی که می توانید هنگام مواجه شدن با خطای 504 Error مواجه شوید ، چند دقیقه صبر کنید و دوباره صفحه را بارگیری کنید. برای تازه کردن / بارگیری مجدد صفحه وب در اکثر مرورگرها می توانید کلید F5 را فشار دهید. برای حذف حافظه پنهان مرورگر، می توانید بجای آن کلید میانبر CTRL + F5 را فشار دهید.

رفع خطای 504 gateway timeout

می توانید سایت را در مرورگر دیگری باز کنید تا این مسئله را دوباره بررسی کنید. اگر هنوز خطا مشاهده شد، می توانید بررسی کنید که سایت فقط برای شما باز نمی شود و برای دیگران هم همینطور است؟ از سایت downforeveryoneorjustme.com یا gtmetrix می توانید برای این منظور استفاده کنید.

2- دستگاه های شبکه خود را دوباره راه اندازی کنید

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

3- تنظیمات پروکسی خود را بررسی کنید

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

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

4- مسائل مربوط به DNS

خطای 504 تایم اوت، همچنین می تواند ناشی از مشکلات DNS در سمت سرور یا مربوط به دستگاه بازدیدکننده(یا هر دو) باشد. محتمل ترین دلیل برای مسئله DNS سمت سرور مربوط به FQDN (نام دامنه کاملاً واجد شرایط) و درست کارنکردن ترجمه آدرس IP است.

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

می توانید از ابزارهای رایگان مانند whatsmydns.net DNS Checker یا DNSMap استفاده کنید تا ببینید آیا DNS شما در سراسر جهان گسترش یافته است یا خیر.

بررسی dns برای رفع خطای 504

برای رفع مشکلات DNS، می توانید حافظه پنهان محلی DNS خود را پاک دهید.  اگر از ویندوز استفاده می کنید ، می توانید حافظه نهان DNS را با باز کردن Command Prompt و وارد کردن دستورالعمل زیر پاک کنید:

ipconfig /flushdns

بررسی dns برای رفع خطای 504

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

درنهایت، می توانید سرورهای DNS سیستم خود را به طور موقت تغییر دهید. به طور پیش فرض ، ISP شما سرورهای DNS را به طور خودکار به شما اختصاص می دهد. اما می توانید این موارد را به طور موقت به DNS های 1.1.1.1 (کلودفلر)، 9.9.9.9، 8.8.8.8 ، 4.2.2.2 و 4.2.2.3 تغییر دهید.

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

گاهی اوقات ، این مسئله ممکن است مربوط به CDN شما باشد. اگر سرور مبدا یک سایت قابل دسترسی نباشد ، بیشتر CDN ها سعی می کنند صفحه وب کامل را از حافظه پنهان خود ارائه دهند. اما اکثر CDN ها این ویژگی را به طور پیش فرض فعال نمی کنند ، چون معمولا ذخیره کردن داشبورد وردپرس پیچیده است.

یک راه ساده برای عیب یابی این است که CDN خود را به طور موقت غیرفعال کنید. به عنوان مثال ، اگر از افزونه های مثل CDN Enabler، WP Rocket ، Breeze یا W3 Total Cache استفاده می کنید، می توانید افزونه را غیرفعال کرده و سایت خود را دوباره سایت را رفرش کنید اگر نمی توانید به داشبورد سرپرست سایت خود دسترسی پیدا کنید ، می توانید پوشه افزونه موردنظر را تغییردهید، اگر هم نمی دانید کدام پوشه است، پوشه plugins را تغییرنام دهید.

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

CDN هایی مانند Cloudflare یا Sucuri که خدمات پراکسی کامل را ارائه می دهند ، فایروال های اضافی بین سرورهای edge و سرور اصلی شما دارند. از این رو ، ممکن است هنگام استفاده از آنها با خطاهای HTTP 5xx بیشتر روبرو شوید. بیشتر آنها خطاهای 5xx را که توسط سرور مبدا شما برگردانده شده اند ، پنهان می کنند ، بنابراین عیب یابی آنها آسان است. پلن های رایگان کلودفلر مستعد ایجاد خطای 5xx است. متأسفانه ، از آنجا که این یک سرویس کامل پروکسی است ، راهی سریع برای غیرفعال کردن آن وجود ندارد. اما قبل از اینکه Cloudflare را مقصر بدانید ، بدانید که Cloudflare دو حالت از خطای 504 Gateway Timeout را نشان می دهد.

خطای 504 کلودفلر (حالت1)

وقتی سرور اصلی سایت شما پاسخ درخواست سرور کلودفلر را HTTP 504 می دهد ، کلودفلر صفحه خطای سفارشی Error 504 را نشان می دهد.

خطای 504 کلودفلر

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

خطای 504 کلودفلر (حالت2)

اگر مسئله مربوط به کلودفلر باشد، در زیر خطای 504، نام cloudflare نمایش داده می شود، که معمولا مشابه تصویر زیر می باشد:

خطای 504 کلودفلر

از آنجا که Cloudflare پاسخ نمی دهد ، خطای حالت اول را در اینجا مشاهده نخواهید کرد. به احتمال زیاد ، کلودفلر از قبل از این مسئله آگاه است و از قبل در حال رفع مشکل است. با بررسی صفحه وب وضعیت سیستم کلودفلر (Cloudflare System Status) می توانید این مورد را بررسی کنید. همچنین می توانید با پشتیبانی کلودفلر برای حل سریعتر در ارتباط باشید.

خطای 504 کلودفلر به علت بارگذاری با حجم بالا

حجم آپلودهای شما در سایت نیز می تواند دلیل بر تایم اوت سرور باشد. کلودفل در هر دو پلن پولی و رایگان حجم فایل بارگذاری (به ازای درخواست HTTP POST) را به 100 مگابایت محدود می کند.

این مسئله می تواند مربوط به هاست شما یا کلودفلر باشد. با قراردادن DNS هاست خود به جای DNS کلودفلر بصورت موقتی می توانید این مورد را بررسی کنید. اگر از کلودفلر در سایت وردپرسی خود استفاده می کنید ، به شما توصیه می کنم از افزونه رایگان کلودفلر استفاده کنید (البته این مورد در wp rocket هم وجود دارد) و URL های حیاتی را (مانند داشبورد مدیر وردپرس) برای کش کردن حذف کنید.

مشکلات سرور (با شرکت هاست خود درارتباط باشید)

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

سایت های پربازدید مستعد ابتلا به خطاهای 504 هستند زیرا بدلیل درخواست های غیرقابل دسترسی زیادیکه ایجاد می شود، سرور overload می شود. با این حال ، این مسئله می تواند برای هر سایتی از جمله وبلاگ های ساده هم پیش آید. بسیاری از هاست ها، برای حل مشکل از شما می خواهند که به یک پلن هاست خود را ارتقا دهید، که در بیشتر موارد غیرضروری است.

اکثر هاست های وردپرس که هاست مشترک ارائه می دهند ممکن است با این مشکل روبرو شوند.بخاطر اینکه  یک سایت پر بازدید که در همان سرور که سایت شما قرار دارد ، ممکن است باعث شود که سایت شما نیز خطای 504 را ایجاد کند.

البته مشکلات سروری فقط overload نیست، و ممکن است دلیل خطا، موارد زیر باشد:

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

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

سایت شما به تعداد بیشتری PHP Work نیاز دارد

PHP Work را به عنوان یک خط خروجی در یک فروشگاه مواد غذایی در نظر بگیرید و هر کالایی که قرار است اسکن شود را همان فرآیند PHP درنظربگیرید.

از PHP Work برای اجرای کد در سایت وردپرسی شما استفاده می شود. یک سایت فروشگاهی که ماهانه 50000 بازدید کننده دارد ، به منابع بسیار بیشتری نسبت به یک وبلاگ ساده با همان میزان بازدید نیاز دارد.

اگر تمام PHP Work های سرور مشغول باشند ، یک صف ایجاد می شود. وقتی صف خیلی بزرگ شود ، سرور درخواست های قدیمی را نادیده می گیرد ، که ممکن است باعث شود سرور خطای 504 gateway را ایجاد کند. می توانید از هاستینگ خود در مورد افزایش تعداد PHP Work خود سوال کنید. ابن کار این امکان را می دهد که چندین درخواست را به طور همزمان اجرا کند.

مشکلات فایروال

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

مشکلات اتصال شبکه

مشکلات اتصال بین پروکسی سرور و وب سرور می تواند باعث تاخیر در پاسخ به درخواست های HTTP شود. اگر از load balancer استفاده می کنید ، ممکن است مشکلات اتصال شبکه درمورد آن وجود داشته باشد.

HTTP Timeout ها

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

همچنین می توانید از ابزاری با پشتیبانی از WP-CLI استفاده کنید تا اسکریپت ها را مستقیماً بر روی سرور اجرا کند و از این طریق اتصال HTTP را به طور کامل دور بزنید. به عنوان مثال ، می توانید از دستور import مربوط به WP-CLI برای اجرای افزونه WordPress Importer از طریق رابط خط فرمان استفاده کنید.

مهم: خطای 504 gateway timeout شبیه خطاهای 503 Service Unavailable یا 502 Bad Gateway به نظر می رسد. اما با هم تفاوت دارند. برای نظارت بر خرابی های سایت، می توانید از ابزاری مانند updown.io یا  uptimerobot.com استفاده کنید. با ارسال درخواست HTTP ، وضعیت وب سایت شما (یا هر URL) را به صورت دوره ای بررسی می کند. می توانید فرکانس بررسی را از 15 ثانیه تا 1 ساعت تنظیم کنید. اگر وب سایت شما کارنکند ، با ایمیل به شما اطلاع می دهد.
نظارت بر سایت به شما کمک می کند سریع از مشکل مطلع شوید، بخصوص اگر از هاست اشتراکی استفاده می کنید بسیار مفید است.

حملات DDoS و ربات ها

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

باتوجه به اینکه افزونه وردفنس دارای فایروال قوی در برابر حملات است، تا حد زیادی می تواند در حل این مشکل موثر باشد. درضمن درقسمت Block می تواند IP هایی که حملات را انجام می دهند را مسدود کنید و این IP ها از قسمت Live قابل بررسی هستند.

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

درضمن استفاده از کلودفلر برای این موضوع مفید است بخاطراینکه در زمان حملات می توانید در کلودفلر Under Attack را فعال کنید. در این زمان صفحه زیر به مخاطبان نمایش داده می شود تا ترافیک واقعی را از ترافیک جعلی و حملات تمیزدهد.

استفاده از under attack در کلودفلر برای زمان حملات و جلوگیری از خطای 504

خرابی پایگاه داده

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

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

افزونه ها و قالب سایت خود را بررسی کنید

در بیشتر موارد، افزونه ها و قالب ها باعث خطاهای 504 نمی شوند. اما ممکن است برخی مواقع به علت ایحاد صف تعدادی زیادی درخواست های تولید شده توسط افزونه ها و قالب ها،server time out بوجود آید. از آنجا که این تعداد زیادی از PHP Work ها سرور شما را بهم پیوند می دهد، می تواند باعث خطاهای 504 شود.

یک مثال عالی برای این موضوع  افزونه ووکامرس است ، افزونه ای است که برای افزودن قابلیت فروشگاه اینترنتی به سایت های وردپرس نصب می شود.

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

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

غیرفعال سازی افزونه ها برای رفع مشکل خطای 504

غیرفعال سازی افزونه ها برای رفع مشکل خطای 504

اگر به پیشخوان وردپرس دسترسی نداشته باشید، می توانید از FileManager موجود در هاست استفاده کنید. وارد دایرکتوری wp-content شوید و دایرکتوری plugins را به نام دیگری مثل plugins1 تغییر دهید.

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

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

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

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

گزارش های خطا (error log) را بررسی کنید

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

می توانید حالت اشکال زدایی وردپرس را با افزودن کد زیر به پرونده wp-config.php (موجود در دایرکتوری که وردپرس را نصب کرده اید) فعال کنید:

define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );

WP_DEBUG حالت اشکال زدایی وردپرس را فعال یا غیرفعال می کند. می توانdد ویژگی های این حالت را در دو وضعیت زیر گسترش دهد.

  • WP_DEBUG_LOG: تمام خطاها را در یک فایل debug.log در پوشه / wp-content / ذخیر می کند. اگر این فایل را نمی بینید ، می توانید این فایل را ایجاد کنید.
  • WP_DEBUG_DISPLAY : اگر مقدار این وضعیت true باشد، خطاها نمایش داده می شود ولی باز اگر false باشد بعداً می توانید خطاها را مرور کنید اگر WP_DEBUG_LOG را با true مقداردهی کرده باشید.
در آخر ، می توانید پرونده های log مربوط به سرور را بررسی کنید. بسته به اینکه از کدام سرور برای میزبانی سایت وردپرس خود استفاده می کنید ، معمولاً در این مکان ها پیدا می شوند:
  • Apache: مسیر /var/log/apache2/error.log/
  • Nginx: مسیر /var/log/nginx/error.log/

تنظیمات Apache یا Nginx را به درستی انجام دهید

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

سرورهای Apache

ابتدا کد زیر را به httpd.conf اضافه کنید:
TimeOut 600

این تنظیمات مشخص می کند که سرور قبل از اینکه درخواست خاصی را به عنوان یک مسئله زمان گیر علامت گذاری کند چه مدت منتظر درخواست بماند. مقدار پیش فرض 60 ثانیه است (نسخه Apache 2.4).

این دستورالعمل را فقط می توانید در پرونده httpd.conf اضافه کنید نه در پرونده htaccess. از آنجا که اکثر ارائه دهندگان میزبانی وب به شما امکان اصلاح فایل httpd.conf را نمی دهند ، می توانید در عوض مقدار دستورالعمل LimitRequestBody را در پرونده htaccess. خود افزایش دهید. سپس خط زیر را به پرونده php.ini خود اضافه کنید:

max_execution_time 300

مقدار پیش فرض دستورالعمل max_execution_time برابر با 30 ثانیه است. افزایش آن باعث می شود طولانی تر اسکریپت های PHP امکان پذیر شوند.

سرورهای Nginx

اگر سایت وردپرسی شما روی  Nginx + FastCGI Process Manager  یا PHP-FPM  اجرا می شود یا از Nginx روی Apache استفاده می کنید ، می توانید تنظیمات زیر را برای جلوگیری از خطاهای 504 Gateway Timeout تغییر دهید.

خطای 504 در Nginx + FastCGI  یا PHP-FPM

ابتدا باید فایل پیکربندی PHP-FPM را ویرایش کنید. می توانید آن را در مسیر /etc/php7.4/fpm/pool.d/www.conf در سرور Nginx پیدا کنید (مسیر دقیق ممکن است براساس نسخه PHP متفاوت باشد). برای ویرایش فایل پیکربندی PHP-FPM ، به ترتیب دستورهای زیر را در ترمینال اجرا کنید:

sudo nano /etc/php/7.2/fpm/pool.d/www.conf
سپس دستورالعمل زیر را اجرا کنید:
request_terminate_timeout = 300
پس از این ، باید فایل php.ini را ویرایش کنید. می توانید این فایل را در /etc/php.ini بیابید. فایل را باز کنید و مقدار دستورالعمل max_execution_time را به 300 ثانیه تغییر دهید.
max_execution_time = 300

در آخر ، کد زیر را به بلوک location فایل nginx.conf اضافه کنید:

location ~ .php$ {
...
fastcgi_read_timeout 300;
}
Nginx و PHP-FPM را reload کنید تا تغییرات اعمال شود.
sudo service nginx reload
sudo service php7.4-fpm reload

کد دقیق PHP-FPM براساس نسخه PHP نصب شده بر روی سرور شما متفاوت خواهد بود. سایت خود را آزمایش کنید تا ببینید آیا این مشکل را برطرف کرده است یا خیر.

خطای 504 Gateway Timeout در Nginx Proxy

اگر از Nginx به عنوان یک سرور پروکسی معکوس برای Apache استفاده می کنید ، می توانید با اضافه کردن دستورالعمل های زیر به پرونده nginx.conf ، آن را نسبت به وقفه های زمانی سرور منعطف تر کنید:

proxy_connect_timeout 600;
proxy_send_timeout 600;
proxy_read_timeout 600;
send_timeout 600;

فراموش نکنید که پس از ایجاد تغییرات ، Nginx را بارگیری مجدد کنید.

sudo service nginx reload

خلاصه

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

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

اگر با حل مسائل بالا هنوز با time out درگیرهستید، بنابراین به خوبی می توانید منابع هاست یا تعداد PHP Woker های خود را ارتقا دهید. من به شما توصیه می کنم این گزینه را فقط پس از انجام تمام راه حل های  توضیح داده شده در این مقاله در نظر بگیرید.

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

اشتراک در خبرنامه

دریافت مقالات مربوط به خطاهای وردپرس
اشتراک در خبرنامه
5/5 (4 Reviews)