هنگامی که سرور سایت در حال دریافت و ارسال درخواست به مرورگر بوده اما در وقت مشخص شده پاسخی از مرورگر کاربر دریافت نمیکند که منجر به خطای Gateway Timeout 504 میشود و به شکلهای مختلف شامل موارد زیر نشان داده میشود.
504 Gateway Timeout
HTTP 504
504 ERROR
Gateway Timeout (504)
HTTP Error 504 – Gateway Timeout
Gateway Timeout Error
راه حلهای زیر به شما کمک میکنند تا بتوانید خطای 504 را رفع کنید.
در این مطلب بخوانید
غیرفعال کردن VPN
اگر از فیلترشکن یا VPN استفاده میکنید، ممکن است با خطای 504 مواجه شوید. فیلترشکن را خاموش کنید و دوباره سایت را بارگذاری کنید.
راهاندازی مجدد اینترنت
اختلال اینترنت نیز میتواند موجب بروز خطای 504 شود که میتوانید با خاموش و روشن کردن اینترنت خود، رفع خطا را بررسی کنید.
افزایش بازدید
افزایش بازدید میتواند منجر به بروز این خطا شود که میتوانید با برنامه گوگل آنالیتیکس آمار سایت خود را بررسی کنید.
اختلال در دیتابیس وردپرس
شلوغی بیش از حد دیتابیس و یا بهینه نبودن آن میتواند منجر به خطای 504 شود. میتوانید با اقدام به بهینهسازی دیتابیس وردپرس خود این خطا را رفع کنید.
افزونه ناسازگار
ممکن است این خطا در نتیجه نصب افزونه جدید ایجاد شود. از نسخه مشابه استفاده کنید و یا آن را آپدیت کنید تا مشکل رفع شود. همچنین میتوانید سایر افزونهها را نیز تک به تک غیرفعال کنید تا از سازگار بودن آنها مطمئن شوید.
کم بودن زمان اجرای PHP
ممکن است این خطا به دلیل کم بودن زمان اجرای php باشد. در این صورت میتوانید با قرار دادن کد مشخصی در فایل htaccess. و ذخیره آن، خطا را رفع کنید.
با وارد کردن کد زیر، زمان تعیین شده را 300 ثانیه قرار دهید تا محدودیت حافظه اجرای php در وردپرس را افزایش دهید.
<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>
استفاده از CDN
اگر از CDN هایی مثل Cloudflare یا Sucuri استفاده میکنید، ممکن است خطای 504 به این مساله مربوط باشد. علت آن عدم توانایی سرور در پاسخگویی به فایروالهاست. تنظیمات Cloudflare یا Sucuri و هاست خود را بررسی کنید.
خرابی فایل htaccess.
این فایل منشا بروز خطاهای مختلفی از جمله خطای 504 است که میتوانید با حذف یا تغییر نام آن، خطا را رفع کنید. با رفتن به بخش تنظیمات و ذخیره مجدد تنظیمات، میتوانید این فایل را دوباره ایجاد کنید.
تغییرات سرور
تغییراتی که در سرورهای هاست سایت شما اعمال میشود، میتواند موجب بروز خطای 504 شود که باید تا رفع شدن مشکل سرور صبر کنید.
اگر خطای 504 با هیچ یک از راه حلهای گفته شده حل نشد، با پشتیبانی هاست خود تماس بگیرید تا با امکانات پیشرفته خود، منشا آن را یافته و آن را رفع کنید.
سخن پایانی
خطای 504 یکی از خطاهای وردپرس است که به دلایل مختلف ایجاد میشود و با راه حلهای ارائه شده، به راحتی رفع میشود. امیدواریم این مقاله برای شما مفید بوده باشد.
تشخیص و رفع خطای 504 Gateway Timeout: راهکارهای پیشرفته و پیشگیرانه
پس از بررسی راهحلهای اولیه برای خطای 504 Gateway Timeout، لازم است نگاهی عمیقتر به دلایل ریشهای این مشکل و ابزارهای پیشرفتهتر برای تشخیص و رفع آن داشته باشیم. این خطا، که نشاندهنده عدم دریافت پاسخ بهموقع از یک سرور بالادستی است، میتواند از پیچیدگیهای متعددی در معماری وردپرس و سرور ناشی شود و تنها با رویکردی جامع قابل حل است.
درک عمیقتر ریشههای خطای 504 در محیط وردپرس
خطای 504 معمولاً زمانی رخ میدهد که یک سرور (مثلاً وبسرور Apache یا Nginx) بهعنوان یک گیتوی یا پراکسی عمل میکند و نمیتواند در زمان مشخصشده، پاسخی از سرور بالادستی خود (مانند PHP-FPM که کدهای PHP وردپرس را اجرا میکند یا سرور دیتابیس) دریافت کند. این مشکل با خطاهای دیگری مانند 500 (خطای داخلی سرور)، 502 (Bad Gateway) یا 503 (Service Unavailable) تفاوت دارد و به طور خاص به مشکل در زمانبندی پاسخدهی اشاره میکند.
- سرور وب (Web Server): Apache یا Nginx که درخواستهای کاربران را دریافت و به PHP-FPM یا سایر سرویسها ارسال میکنند.
- PHP-FPM: پردازشگر PHP که کدهای وردپرس را اجرا میکند. اگر اجرای یک اسکریپت PHP بیش از حد طول بکشد، سرور وب ممکن است قبل از اتمام کار PHP-FPM، زمانش تمام شود.
- سرور دیتابیس: MySQL یا MariaDB که وردپرس برای ذخیره و بازیابی اطلاعات از آن استفاده میکند. کندی در پاسخدهی دیتابیس میتواند باعث تأخیر در اجرای PHP و در نهایت خطای 504 شود.
ابزارهای تشخیصی پیشرفته برای شناسایی عامل اصلی
برای پیدا کردن ریشه اصلی خطای 504، فراتر از راهحلهای عمومی، باید از ابزارهای تشخیصی دقیقتر استفاده کرد:
بررسی لاگهای سرور (Server Logs)
لاگهای سرور حاوی اطلاعات حیاتی در مورد عملکرد وبسایت و خطاهای احتمالی هستند. دسترسی به این لاگها معمولاً از طریق cPanel (بخش Logs یا Error Logs)، DirectAdmin یا با اتصال SSH (برای سرورهای VPS/اختصاصی) امکانپذیر است. مهمترین لاگهایی که باید بررسی کنید:
- Error Logs (لاگهای خطا): این لاگها (معمولاً
error_logبرای Apache یا در مسیرهای Nginx) خطاهای سمت سرور، هشدارهای PHP، و مشکلات مربوط به ماژولها را ثبت میکنند. به دنبال پیامهایی باشید که زمان وقوع خطا و جزئیات مربوط به اسکریپت یا تابعی که باعث تأخیر شده است را نشان میدهند. - Access Logs (لاگهای دسترسی): این لاگها تمام درخواستهای ورودی به سایت شما را ثبت میکنند. اگر ترافیک ناگهانی و غیرمعمولی مشاهده کردید که منجر به اشغال منابع شده، در این لاگها قابل مشاهده است.
- PHP-FPM Logs (لاگهای PHP-FPM): اگر سرور شما از PHP-FPM استفاده میکند، لاگهای آن میتوانند اطلاعات دقیقتری در مورد مشکلات اجرای PHP، مانند
max_childrenیاrequest_terminate_timeoutرا ارائه دهند.
فعالسازی حالت دیباگ وردپرس (WordPress Debug Mode)
فعال کردن حالت دیباگ در وردپرس میتواند به شما کمک کند تا خطاهای داخلی PHP یا وردپرس را که ممکن است منجر به تأخیر شوند، شناسایی کنید. برای این کار، فایل wp-config.php را در ریشه نصب وردپرس خود باز کرده و خطوط زیر را قبل از /* That's all, stop editing! Happy publishing. */ اضافه کنید:
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false ); // برای امنیت، خطاها را روی صفحه نمایش ندهید.
@ini_set( 'display_errors', 0 );
پس از فعالسازی، وردپرس یک فایل debug.log در پوشه wp-content ایجاد میکند که تمام خطاها، هشدارها و اطلاعیههای PHP را در آن ثبت میکند. با بررسی این فایل، میتوانید افزونه یا قالبی که ممکن است باعث کندی یا خطا شده باشد را شناسایی کنید.
استفاده از ابزارهای مانیتورینگ عملکرد (APM)
ابزارهای مانیتورینگ عملکرد برنامه (Application Performance Monitoring – APM) مانند New Relic، Kinsta APM، یا SiteGround Monitoring، دید بسیار عمیقتری به عملکرد وبسایت شما میدهند. این ابزارها میتوانند گلوگاههای عملکردی در کدهای PHP، کوئریهای دیتابیس کند، و زمان پاسخدهی سرویسهای خارجی را با دقت بالا شناسایی کنند. استفاده از APM میتواند به سرعت شما را به سمت منبع اصلی تأخیر هدایت کند، حتی اگر مشکل در لایههای زیرین سرور باشد.
راهکارهای اجرایی برای بهینهسازی و پیشگیری
پس از تشخیص، نوبت به اعمال راهحلهای پیشگیرانه و اجرایی میرسد:
بهینهسازی تنظیمات وبسرور و PHP-FPM
علاوه بر افزایش زمان اجرای PHP که قبلاً ذکر شد، تنظیمات وبسرور نیز حیاتی هستند:
- Apache: پارامتر
Timeoutدر فایلhttpd.confیا تنظیمات Virtual Host، زمان انتظار Apache برای دریافت پاسخ از کلاینت یا سرور بالادستی را مشخص میکند. مقدار پیشفرض آن معمولاً 300 ثانیه است. - Nginx: اگر از Nginx بهعنوان پراکسی معکوس (Reverse Proxy) در جلوی Apache یا PHP-FPM استفاده میکنید، پارامترهایی مانند
proxy_read_timeoutوfastcgi_read_timeout(برای PHP-FPM) نقش کلیدی دارند. این مقادیر نیز باید متناسب با نیازهای سایت شما تنظیم شوند، مثلاًproxy_read_timeout 300s;. - PHP-FPM: در فایل تنظیمات PHP-FPM (معمولاً
php-fpm.confیا فایلهای مربوط به Poolها)، پارامترrequest_terminate_timeoutوجود دارد که حداکثر زمان اجرای یک درخواست PHP را توسط PHP-FPM تعیین میکند. این مقدار باید باmax_execution_timeدرphp.iniهماهنگ باشد و معمولاً روی 300 ثانیه یا بیشتر تنظیم میشود.
مدیریت منابع سرور و هاستینگ
گاهی اوقات، مشکل از کمبود منابع سرور است. اگر سایت شما رشد کرده و ترافیک بالایی دارد، ممکن است هاست اشتراکی دیگر پاسخگو نباشد. در سال 1405، با رشد روزافزون کسبوکارهای آنلاین در ایران، تخمین زده میشود که نیاز به منابع سرور برای وبسایتهای متوسط تا بزرگ، حداقل 30% افزایش یابد. بنابراین:
- بررسی مصرف منابع: از طریق پنل هاست خود (cPanel/DirectAdmin) یا ابزارهای مانیتورینگ سرور (برای VPS/Dedicated) مصرف CPU، RAM و I/O را به دقت بررسی کنید. افزایش ناگهانی در این موارد میتواند نشاندهنده نیاز به ارتقاء پلن هاستینگ باشد.
- ارتقاء هاستینگ: اگر منابع سرور به طور مداوم اشغال هستند، ارتقاء به یک سرور مجازی (VPS) یا سرور اختصاصی (Dedicated Server) ضروری است.
- حفاظت در برابر حملات DDoS: حملات DDoS میتوانند با ارسال حجم عظیمی از درخواستها، سرور شما را اشباع کرده و منجر به خطای 504 شوند. استفاده از سرویسهای محافظتی مانند Cloudflare میتواند در این زمینه کمککننده باشد.
بهینهسازی دیتابیس فراتر از “شلوغی”
علاوه بر بهینهسازی کلی دیتابیس، اقدامات زیر نیز مفید هستند:
- پاکسازی جداول غیرضروری: بسیاری از افزونهها پس از حذف، جداول خود را در دیتابیس رها میکنند. همچنین، دادههای موقتی، رونوشتها (revisions) و کامنتهای اسپم میتوانند دیتابیس را سنگین کنند. از افزونههایی مانند WP-Optimize یا ابزارهای phpMyAdmin برای پاکسازی این موارد استفاده کنید.
- بررسی Slow Query Log: اگر سرور شما این قابلیت را دارد، فعال کردن Slow Query Log در MySQL/MariaDB میتواند کوئریهای دیتابیس که بیش از حد طول میکشند را شناسایی کند. این کوئریها اغلب توسط افزونهها یا کدهای قالب نامناسب ایجاد میشوند.
استفاده هوشمندانه از CDN و کشینگ
CDN (شبکه توزیع محتوا) و سیستمهای کشینگ میتوانند بار روی سرور اصلی شما را به شدت کاهش دهند و از بروز خطای 504 جلوگیری کنند:
- تنظیمات CDN: اگر از CDN مانند Cloudflare استفاده میکنید، مطمئن شوید که تنظیمات آن به درستی انجام شده است. قابلیتهایی مانند “Always Online” در Cloudflare میتواند در صورت بروز مشکل در سرور اصلی، نسخه کش شده سایت شما را نمایش دهد. همچنین، تنظیمات مربوط به زمانبندی کش و فایروال (WAF) را بررسی کنید.
- افزونههای کشینگ: استفاده از افزونههای کشینگ قوی مانند WP Super Cache، LiteSpeed Cache یا WP Rocket میتواند با ذخیره نسخههای استاتیک صفحات، نیاز به پردازش PHP و دیتابیس برای هر درخواست را به حداقل برساند.
چکلیست گام به گام برای عیبیابی خطای 504
برای یک رویکرد سیستماتیک در عیبیابی خطای 504، میتوانید از چکلیست زیر استفاده کنید. این گامها مکمل راهحلهای اولیه هستند و به شما کمک میکنند تا با دقت بیشتری مشکل را شناسایی و حل کنید:
| گام | اقدام | جزئیات و نکات کلیدی |
|---|---|---|
| 1 | بررسی وضعیت عمومی سایت و سرور | آیا فقط شما با این خطا مواجه هستید؟ از ابزارهایی مانند DownDetector یا وبسایتهای مشابه استفاده کنید. آیا سایر سایتهای روی همین سرور (اگر هاست اشتراکی دارید) نیز مشکل دارند؟ این کار به تفکیک مشکل از سمت کلاینت یا سرور کمک میکند. |
| 2 | بررسی لاگهای سرور | لاگهای خطا (error_log)، لاگهای دسترسی (access_log) و لاگهای PHP (php-fpm.log) را برای یافتن سرنخها بررسی کنید. به دنبال پیامهای Fatal error، Allowed memory size exhausted، Maximum execution time exceeded یا هرگونه خطای مربوط به دیتابیس باشید که در زمان وقوع 504 ثبت شدهاند. |
| 3 | فعالسازی حالت دیباگ وردپرس | WP_DEBUG و WP_DEBUG_LOG را در wp-config.php فعال کنید و فایل wp-content/debug.log را بررسی نمایید. این کار میتواند خطاهای PHP ناشی از افزونهها یا قالبها را آشکار کند. |
| 4 | تست افزونهها و قالب | همه افزونهها را از طریق پنل مدیریت وردپرس یا تغییر نام پوشه plugins از طریق FTP/File Manager غیرفعال کنید. اگر مشکل برطرف شد، تکتک آنها را فعال کنید تا افزونه مشکلساز را بیابید. قالب را نیز موقتاً به یک قالب پیشفرض وردپرس (مانند Twenty Twenty-Four) تغییر دهید. |
| 5 | بررسی و تنظیم مجدد زمانبندی PHP و وبسرور | مقادیر max_execution_time, memory_limit, post_max_size را در php.ini یا .htaccess (اگر هاست اجازه دهد) بررسی و در صورت نیاز افزایش دهید. همچنین، اگر به تنظیمات سرور دسترسی دارید، Timeout در Apache یا proxy_read_timeout در Nginx را بررسی و تنظیم کنید. |
| 6 | بهینهسازی عمیق دیتابیس | با استفاده از افزونههای بهینهسازی دیتابیس یا ابزارهای phpMyAdmin، جداول دیتابیس را بهینهسازی و جداول غیرضروری، رونوشتها و دادههای موقتی را پاکسازی کنید. اگر امکانش هست، Slow Query Log را بررسی کنید. |
| 7 | بررسی و تنظیمات CDN/کشینگ | اگر از CDN استفاده میکنید، آن را موقتاً غیرفعال کنید یا تنظیمات آن را بررسی کنید تا مطمئن شوید مشکلی از آنجا نیست. تنظیمات فایروال (WAF) در CDN نیز میتواند گاهی اوقات باعث بروز این خطا شود. |
| 8 | تماس با پشتیبانی هاست | در صورتی که هیچ یک از مراحل فوق مشکل را حل نکرد، تمامی اطلاعات جمعآوری شده (لاگها، مراحل تست، تغییرات اعمال شده) را به پشتیبانی هاست خود ارائه دهید. آنها میتوانند لاگهای سیستمی عمیقتر را بررسی کرده و به مشکلات سختافزاری یا شبکه سرور شما رسیدگی کنند. |
تأثیر خطای 504 بر سئو و تجربه کاربری
خطای 504 Gateway Timeout تنها یک مشکل فنی نیست، بلکه میتواند عواقب جدی برای سئو (SEO) و تجربه کاربری (UX) سایت شما داشته باشد. موتورهای جستجو مانند گوگل، سایتهایی را که به طور مداوم با خطا مواجه هستند، کمتر قابل اعتماد میدانند و ممکن است رتبه آنها را کاهش دهند. یک سایت که اغلب با خطای 504 مواجه میشود، نرخ پرش (Bounce Rate) بالایی خواهد داشت، زیرا کاربران پس از مواجهه با خطا، به سرعت سایت را ترک میکنند. این امر به اعتبار برند شما آسیب میرساند و میتواند منجر به از دست دادن مشتریان و بازدیدکنندگان شود.
نتیجهگیری و توصیههای نهایی
رفع خطای 504 Gateway Timeout نیازمند صبر، تحلیل دقیق و رویکردی سیستماتیک است. با استفاده از ابزارهای تشخیصی پیشرفته، بهینهسازی تنظیمات سرور و وردپرس، و پیروی از یک چکلیست عیبیابی، میتوانید ریشه مشکل را پیدا کرده و آن را برطرف کنید. به یاد داشته باشید که مانیتورینگ مداوم عملکرد سایت، بکآپگیری منظم و انتخاب یک ارائهدهنده هاستینگ قابل اعتماد، بهترین استراتژیهای پیشگیرانه برای حفظ سلامت و پایداری وبسایت وردپرسی شما هستند.
برای اجرای حرفهای این کار میتوانید از طراحی سایت اختصاصی کمک بگیرید.



