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

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

هنگامی که کاربر، یک وب سایت را در مرورگر باز می کند، مرورگر درخواستی را به سرور اصلی سایت ارسال می کند و سرور پس از بررسی به این درخواست پاسخ می دهد. پاسخ سرور شامل یکی از کدهای وضعیت HTTP است که نشان دهنده وضعیت پاسخ به مرورگر می باشد. کدهای وضعیت 5XX که شامل پنج کد اصلی (500,501,502,503,504) هستند به خطا های سرور معروف اند به این معنی که درخواست مرورگر پذیرفته شده ولی خطای سرور مانع از اجرای درخواست است.
به عبارتی دیگر، معنی دقیق آن این است که یک سرویس‌دهنده (سرور) پاسخی به موقع از سرویس‌دهنده‌ی دیگر که در تلاش برای بارگذاری صفحه‌ی وب یا تکمیل درخواست مرورگر است، را دریافت نکرده است.


انواع پیغام های نمایش خطای 504

خطای 504 بسته به نوع مرورگر، سیستم عامل و سرور هایی که به کار گرفته شده اند؛ ممکن است به شیوه های مختلفی نمایش داده شود تمامی پیغام های زیر نشان دهنده ی خطای 504 هستند.
504 Gateway Timeout504 Gateway Timeout NGINXNGINX 504 Gateway TimeoutGateway Timeout ErrorError 504HTTP Error 504HTTP Error 504 — Gateway TimeoutHTTP 504504 ErrorGateway Timeout (504)This page isn’t working — Domain took too long to respond504 Gateway Time-out — The server didn’t respond in time

علت وقوع خطای 504 Gateway time out

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

  • ترافیک زیاد در سرور بالا دست
  • اختلال در پایگاه داده وردپرس
  • خراب بودن فایل htaccess
  • مشکل در cdn یا فایروال ها
  • تغییرات در سرور

آموزش رفع خطای 504 در وردپرس

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

یکی از اولین کارهایی که می توانید حین مواجه شدن با خطای 504 انجام دهید این است که چند دقیقه صبر کنید و دوباره صفحه را لود کنید یا به اصطلاح رفرش کنید. شما می توانید برای بارگذاری مجدد سایت از آیکون Reload موجود در کنار نوار آدرس سایت یا کلید های ترکیبی Ctrl + R یا Ctrl + F5 استفاده کنید. این کار را چندین بار انجام دهید تا مجددا درخواست بارگذاری صفحه به سرور ارسال شود. درصورت عدم وجود مشکل در سرور , سایت برای شما به سادگی لود خواهد شد.
2. بررسی پروکسی

اگر از پروکسی استفاده میکنید, ممکن است این خطا به علت عدم برقراری ارتباط سرور با آن باشد. البته به ندرت پیش می آید که پروکسی باعث خطای 504 شود ولی گاهی اوقات به دلیل تنطیمات اشتباه پروکسی این خطا به وجود می آید. پس جهت رفع خطا ابتدا تنظیمات پروکسی خود را بررسی کنید و سپس آن را قطع کرده و مجددا سعی در بارگذاری سایت داشته باشید. درصورتی که مشکل از پروکسی باشد سایت به راحتی برای شما بارگذاری خواهد شد. در غیراین صورت از روش های موجود در ادامه آموزش استفاده کنید.
3. راه اندازی مجدد اینترنت

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

4. اختلال در دیتابیس وردپرس

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

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

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


<IfModule mod_php5.c>
php_value post_max_size 512M
php_value upload_max_filesize 512M
php_value memory_limit 1024M
php_value max_execution_time 300
php_value max_input_time 300
php_value session.gc_maxlifetime 1440
</IfModule>
اگر به کد بالا دقت کنید زمان 300 ثانیه به عنوان حداکثر زمان اجرای خطای 504 در نظر گرفته شده تا خطای 504 به وجود نیاید شما می توانید این زمان را تغییر دهید.
7. غیر فعال کردن CDN

اگر از CDN هایی مانند Cloudflare یا Sucuri استفاده میکنید ممکن است خطای ایجاد شده مربوط به این CDN ها باشد که علت آن عدم توانایی سرور در پاسخگویی به فایروال های اینهاست. گاهی اوقات شبکه ی توزیع محتوا می تواند دلیل این خطا باشد یک راه ساده برای عیب یابی این است که CDN خود را به طور موقت غیرفعال کنید به عنوان مثال اگر از پلاگین رایگان CDN Enabler WordPress استفاده می کنید می توانید افزونه را غیرفعال کرده و سایت خود را دوباره بارگیری کنید.
8. خرابی فایل htaccess.

ممکن است گاهی به علت ایجاد تغییرات در فایل htaccess. با این خطا مواجه شوید. اگر درحال ویرایش این فایل بال خطای 504 مواجه شدید , کافی است که کدهایی که به این فایل اضافه کردید را حذف کرده و سپس بررسی کنید که آیا مشکل رفع شده است یا خیر. همچنین میتوانید نام فایل را تغییر دهید و به پیشخوان وردپرس خود بروید , از بخش تنظیمات “پیوند های یکتا“ را انتخاب کنید و روی دکمه ذخیره تغییرات کلیک کنید تا یک فایل htaccess. جدید ساخته شود سپس میتوانید بررسی های لازم را جهت چک کردن رفع شدن مشکل انجام دهید.
9. ایجاد تغییرات در سرور

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

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