Retry

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

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

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

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

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

خطای 504 Gateway Timeout چیست

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

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

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

گروه ویژه مهندسی اینترنت (IETF) ارور 504 Gateway Timeout را چنین تعریف می کند:

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

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

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

ارور 504 Gateway Timeout

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

ارور 504 Gateway Timeout

تغییرات خطای 504 Gateway Timeout

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

در زیر چند پیام رایج خطای 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 Gateway Timeout اشاره می کنند.

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

تغییرات خطای 504 Gateway Timeout

تأثیر سئو در خطای Timeout 504 Gateway

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

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

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

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

تأثیر SEO در خطای Timeout 504 Gateway

سرچ کنسول گوگل یکی از بهترین ابزارهای جست و جوگرها برای نظارت بر خطاهای HTTP 5xx وب سایت شما است. مقاله آموزش ثبت سایت در سرچ کنسول را مطالعه کنید.

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

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

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

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

نحوه رفع خطای 504 Gateway Timeout

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

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

بارگیری دوباره صفحه وب را امتحان کنید.

یکی از اولین مواردی که می توانید هنگام مواجه شدن با ارور 504 Gateway Timeout انجام دهید، چند دقیقه صبر کنید و دوباره صفحه را بارگیری کنید.

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

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

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

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

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

در حالی که می توانید همه این دستگاه های شبکه را به هر ترتیب خاموش کنید، ترتیب روشن شدن مجدد آن ها مهم است.

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

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

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

بررسی تنطیمات پروکسی

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

مسائل DNS

خطای 504 Gateway Timeout همچنین می تواند ناشی از مشکلات DNS در سمت سرور یا سمت مشتری (یا هر دو) باشد.

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

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

whatsmydns.net DNS Checker

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

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

ipconfig /flushdns

مسائل DNS

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

برای آخرین نسخه های macOS ، می توانید Terminal را باز کرده و دستور زیر را اجرا کنید:

sudo killall -HUP mDNSResponder

پس از اتمام مراحل، هیچ اعلانی در macOS مشاهده نخواهید کرد، اما می توانید با ضمیمه کردن دستور با پیام سفارشی، آن را تغییر دهید.

sudo killall -HUP mDNSResponder; DNS Cache was cleared successfully

اگر از نسخه های قدیمی macOS استفاده می کنید، دستوری که باید وارد کنید بر اساس نسخه MacOS اجرا می شود متفاوت است.

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

سرانجام، می توانید سرور های DNS سمت مشتری خود را به طور موقت تغییر دهید. به طور پیش فرض، ISP شما سرور های DNS را به طور خودکار به شما اختصاص می دهد. اما می توانید این موارد را به طور موقت به IP های DNS عمومی تغییر دهید.

برخی از موارد معتبری که می توانید امتحان کنید عبارتند از Google Public DNS ، Cloudflare 1.1.1.1 ، Quad9 DNS و Cisco OpenDNS.

مسائل DNS

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

گاهی اوقات، این مسئله ممکن است با شبکه تحویل محتوا (CDN) شما باشد. اگر نمی دانید CDN چیست مقاله ما در این زمینه را مطالعه کنید. اگر سرور مبدا یک سایت قابل دسترسی نباشد، بیشتر CDN ها سعی می کنند تا از وب سایت کامل صفحه وب را ارائه دهند.

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

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

یک راه ساده برای عیب یابی این است که CDN خود را به طور موقت غیرفعال کنید. به عنوان مثال، اگر از افزونه های رایگان وردپرس CDN Enabler برای هدایت پیوند های سایت خود به URL های CDN استفاده می کنید، می توانید افزونه را غیرفعال کرده و سایت خود را دوباره بارگیری کنید.

همین مورد قابل استفاده برای هر افزونه دیگری که می توانید برای اتصال به CDN خود استفاده کنید است (به عنوان مثال WP Rocket ، Breeze ، W3 Total Cache )

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

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

CDN هایی مانند Cloudflare یا Sucuri که خدمات پروکسی کاملی را ارائه می دهند، فایروال های اضافی بین سرور ها فرعی و سرور اصلی شما دارند. از این رو، ممکن است هنگام استفاده از آن ها با خطاهای HTTP 5xx بیشتر روبرو شوید. بیشتر آن ها خطاهای 5xx را که توسط سرور مبدا شما برگردانده شده اند، پنهان می کنند، بنابراین عیب یابی آن ها آسان است.

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

504 Gateway Timeout در Cloudflare (نوع 1)

Cloudflare هنگامی که سرور مبدا سایت شما با یک پاسخ استاندارد HTTP 504 پاسخ می دهد، صفحه خطای سفارشی 504 Gateway Timeout را به شما نشان می دهد.

504 Gateway Timeout در Cloudflare

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

504 Gateway Timeout در Cloudflare ( نوع 2)

اگر Cloudflare باعث خطای 504 Gateway Timeout شود، در صفحه خطا “cloudflare” ذکر می شود که در حال حاضر نام استاندارد سرور برای تمام دارایی های Cloudflare است. معمولاً صفحه خطا به صورت زیر ظاهر می شود:

504 Gateway Timeout در Cloudflare

از آن جا که Cloudflare به خودی خود واکنش نشان نمی دهد، در اینجا صفحه نمایش خطای مارک Cloudflare مشاهده نخواهید کرد.

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

504 Gateway Timeout در Cloudflare

504 Gateway Timeout در Cloudflare به دلیل بارگذاری زیاد

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

504 Gateway Timeout در Cloudflare به دلیل بارگذاری زیاد

این مسئله می تواند در پایان میزبان شما یا با Cloudflare باشد. با دور زدن Cloudflare با فایل میزبان DNS و امتحان مجدد بارگذاری، می توانید علت دقیق آن را دریابید.

اگر از Cloudflare با وردپرس استفاده می کنید، ما به شما توصیه می کنیم از افزونه رایگان آن ها استفاده کنید و URL های حیاتی را ذخیره (مانند داشبورد مدیر وردپرس) حذف کنید.

مشکلات سرور

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

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

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

در خواست سرور بیش از حد مجاز تنها دلیل وقفه در سرور نیست. دلایل زیادی برای خطای 504 وجود دارد:

زیرساخت آهسته سرور

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

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

به تعداد بیشتری پردازشگر PHP نیاز دارد.

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

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

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

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

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

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

وقفه های HTTP

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

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

مهم: خطاهای 504 Gateway Timeout شبیه خطاهای 503 Service Unavailable یا 502 Bad Gateway به نظر می رسد. اما همه آن ها متفاوت هستند.

برای نظارت بر خرابی سایت خود به تنهایی، می توانید از ابزاری مانند updown.io استفاده کنید . با ارسال درخواست HTTP به آن، وضعیت وب سایت شما (یا هر URL) را به صورت دوره ای بررسی می کند. می توانید دوره های بررسی را از 15 ثانیه تا 1 ساعت تنظیم کنید. اگر وب سایت شما به درستی پاسخ ندهد، با ایمیل یا پیام کوتاه به شما اطلاع می دهد.

وقفه های HTTP

با هر حساب updown.io مقدار زیادی اعتبار رایگان دریافت خواهید کرد، اما اگر به دنبال گزینه های ارزان تر هستید ، می توانید WebGazer یا UptimeRobot را بررسی کنید. هر دو این ابزارها به شما کمک می کنند تا هر 5 دقیقه به صورت رایگان زمان کار سایت خود را کنترل کنید. این برای اکثر دارندگان وب سایت به اندازه کافی مناسب است.

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

حملات هرزنامه، ربات ها یا DDoS

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

می توانید ترافیک سرور و تجزیه و تحلیل خود را بررسی کنید تا ببینید آیا می توانید الگو های نامنظمی را در ترافیک سایت مشاهده کنید.

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

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

به عنوان مثال، سایت های ووکامرس درخواست های غیرقابل دسترسی زیادی را برای ویژگی هایی مانند سبد خرید و روند پرداخت ارائه می دهند.

حملات هرزنامه، ربات ها یا DDoS

سرانجام، می توانید از طریق یک افزونه امنیتی وردپرس، امنیت وب سایت خود را با ردیابی و مسدود کردن ترافیک / IP های نگران کننده تقویت کنید. می توانید از میزبان خود بخواهید IP های خاصی را نیز مسدود کند.

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

برای محافظت از سایت های خود در برابر حملات DDoS و ربات های هرزنامه می توانید از راه حل های امنیتی اختصاصی مانند Cloudflare یا Sucuri استفاده کنید.

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

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

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

افزونه ها و پوسته های سایت خود را بررسی کنید.

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

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

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

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

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

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

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

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

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

گزارش خطاها را بررسی کنید.

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

اگر میزبان شما از ابزار ورود به سیستم برخوردار نیست، پس می توانید حالت اشکال زدایی وردپرس را با افزودن کد زیر به پرونده wp-config.php خود فعال کنید:

define( 'WP_DEBUG', true );

define( 'WP_DEBUG_LOG', true );

define( 'WP_DEBUG_DISPLAY', false );

ثابت WP_DEBUG فعال یا غیرفعال بودن حالت اشکال زدایی وردپرس است. این دو ثابت همراه اختیاری دارد که می تواند ویژگی های آن را گسترش دهد. WP_DEBUG_LOG تمام اشتباهات را در یک فایل به نامdebug.log در درون /wp-content/ ذخیره می کند. اگر این فایل را نمی بینید ، می توانید یک پرونده ایجاد کنید.

WP_DEBUG_DISPLAY کنترل ثابت اشکال زدایی مربوط را در صفحه HTML نشان می دهد با تنظیم این روی false همه خطاها را پنهان می کند، اما بعدا می توانید خطاها را مرور کنید WP_DEBUG_LOG زیرا آن را درست نیز آن تعریف کرده اید.

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

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

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

apachi: /var/log/apache2/error.log/

Nginx: /var/log/nginx/error.log/

برای اطلاعات بیشتر می توانید به مستندات مربوط به Apache یا Nginx وارد شوید.

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

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

برای سرور های Apache ابتدا کد زیر را به httpd.conf اضافه کنید :

TimeOut 600

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

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

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

سپس خط زیر را به پرونده php.ini خود اضافه کنید:

max_execution_time 300

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

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

خطای 504 Gateway Timeout در 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

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

location ~ .php$ {

...

fastcgi_read_timeout 300;

}

 

Nginx و PHP-FPM را بارگیری کنید تا تغییرات اعمال شود.

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

سایر خطاهای HTTP مانند 504 Gateway Timeout

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

500 Internal Server Error

501 Not Implemented Error

502 Bad Gateway Error

503 Service Unavailable Error

سایر خطاهای HTTP ناشی از مشکلات سمت مشتری، مانند خطای 404 Not Found، نیز مانند خطای 504 در وردپرس است.

خلاصه

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

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

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

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

ژاکت را دنبال کنید

ژاکت در اینستاگرام

ژاکت در فیسبوک

ژاکت در لینکدین

ژاکت در توییتر

دیدگاه‌ها

Comments

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