
به اشتراک بگذارید
- ارور 504 یعنی سرور پاسخ نداده و ارتباط بین گیتوی و سرور بکاند قطع یا کند شده است.
آنچه در این مقاله میخوانید:
تفاوت ارور 504 با خطاهای مشابه 502 و 503
- 502 Bad Gateway: زمانی رخ میدهد که سرور پروکسی یا گیتوی پاسخی نامعتبر از سرور اصلی دریافت میکند.
- 503 Service Unavailable: نشاندهنده غیرفعال بودن یا مشغول بودن بیشازحد سرور است.
- 504 Gateway Timeout: بیانگر آن است که گیتوی مدت زیادی منتظر پاسخ مانده و سرور بکاند پاسخی نداده است.
علت خطای 504 (Gateway Timeout)

ارور 504 زمانی رخ میدهد که سرور واسط (Gateway/Proxy) در بازه زمانی تعریفشده پاسخی از سرور پشتصحنه (Upstream/Origin) دریافت نمیکند. این «عدم پاسخگویی بهموقع» لزوماً به معنی از کار افتادن سرویس نیست؛ در بسیاری از سناریوها، گره مقصد در حال پردازش سنگین (مثلاً اجرای کوئریهای پیچیده یا درخواست به API خارجی) است یا به دلیل محدودیت منابع/اتصالات نمیتواند پاسخ را در محدوده زمانی تعیینشده برگرداند.
همچنین ممکن است مشکل از اینترنت یا شبکه، تنظیمات نادرست فایروال یا حتی سرویسهای واسطه مثل Cloudflare باشد. به زبان ساده، وقتی ارتباط بین سرور شما و کاربر بیش از حد طولانی شود، مرورگر خطای 504 را نمایش میدهد. در ادامه رایجترین دلایل را میبینید:
- کندی پایگاه داده (Database): اجرای کوئریهای سنگین یا قفل شدن جداول.
- زمانبندی نامناسب Timeout سرور: محدودیت پیشفرض در وبسرورها مانند Nginx یا Apache.
- مشکلات CDN یا فایروال: تداخل Cloudflare یا تنظیمات امنیتی نادرست.
- اسکریپتهای PHP سنگین: پردازش طولانی یک اسکریپت وردپرس یا پلاگین معیوب.
- ترافیک بیشازحد: بار زیاد روی سرور که باعث کندی پاسخ میشود.
روشهای رفع ارور 504 یا خطا Gateway Timeout
اقدامات اولیه سمت کاربر در رفع مشکل 504
- رفرش (Refresh) صفحه مرورگر.
- پاک کردن کش مرورگر و پاک کردن کش DNS 504 در سیستم.
- تست اتصال اینترنت یا تغییر شبکه برای بررسی مشکل سمت کاربر.
عیبیابی در سطح وبسایت (مدیریت CMS)
- غیرفعال کردن افزونهها و قالب وردپرس برای شناسایی 504 Error WordPress.
- بهینهسازی پایگاه داده با افزونههایی مانند WP-Optimize.
- بررسی فایل
.htaccessبرای تنظیمات ناسازگار که به دلیل پایین بودن زمان اجرای PHP با این خطا مواجه خواهید شد. برای رفع این مشکا کافی است کد زیر را در فایل 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> 
رفع مشکل 504 سایت در سطح سرور
1- بررسی تنظیمات وبسرور
- در Apache مقدار
TimeoutوProxyTimeoutرا افزایش دهید. - در Nginx پارامتر
proxy_read_timeoutرا بیشتر کنید.
2- تنظیمات فایروال 504
در صورت استفاده از Cloudflare، حالت توسعه (Development Mode) را فعال کنید و تست کنید.

3- بررسی لاگ سرور 504
- بررسی فایلهای لاگ در
/var/log/nginx/error.logیا/var/log/apache2/error.log. - تحلیل خطاها برای یافتن کوئریهای سنگین یا اسکریپتهای معیوب.
4- افزایش Timeout سرور
- برای کوئریهای دیتابیس یا APIهای خارجی زمان انتظار بیشتری در نظر بگیرید.
- استفاده از کش (Cache) برای کاهش فشار روی منابع.

مقایسه راهحلهای رفع ارور 504 سایت
| سطح مشکل | راهحل پیشنهادی | مثال عملی |
|---|---|---|
| سمت کاربر | پاک کردن کش DNS | ipconfig /flushdns |
| سمت CMS | غیرفعال کردن افزونه وردپرس | تغییر نام پوشه plugins |
| سمت وبسرور | افزایش proxy_read_timeout | proxy_read_timeout 300; |
| سمت دیتابیس | بهینهسازی کوئریهای MySQL | استفاده از EXPLAIN برای کوئریها |
نتیجهگیری: رفع ارور 504 (Gateway Timeout)
سوالات متداول از خطای Gateway Timeout
1- علت اصلی ارور 504 چیست؟
معمولاً به دلیل تاخیر در پاسخدهی سرور بکاند یا Timeout در وبسرور رخ میدهد.
2- آیا ارور 504 موقتی است؟
بله، در برخی موارد ممکن است موقتی باشد اما تکرار آن نشاندهنده مشکل ساختاری است.
3- چگونه در وردپرس ارور 504 را رفع کنیم؟
با غیرفعال کردن افزونهها، بهینهسازی دیتابیس و افزایش Timeout در سرور.
4- آیا Cloudflare میتواند باعث خطای 504 شود؟
بله، تنظیمات CDN یا فایروال ممکن است ارتباط سرور را قطع کند.
5- چگونه میتوانم کش DNS را پاک کنم؟
با دستور ipconfig /flushdns در ویندوز یا sudo systemd-resolve --flush-caches در لینوکس.
6- چه تفاوتی بین خطای 502 و 504 وجود دارد؟
در 502 پاسخ نامعتبر است، در حالیکه در 504 پاسخی اصلاً دریافت نمیشود.
7- آیا افزایش منابع سرور میتواند مشکل 504 را حل کند؟
بله، در صورت بار زیاد روی سرور ارتقای CPU و RAM موثر است.
8- چگونه لاگهای سرور را بررسی کنیم؟
با مراجعه به مسیر /var/log/nginx/error.log یا /var/log/apache2/error.log.
9- آیا استفاده از کش میتواند مفید باشد؟
بله، کشگذاری سمت سرور یا CDN باعث کاهش فشار و جلوگیری از Timeout میشود.
10-چه زمانی باید با پشتیبانی هاست تماس بگیرم؟
وقتی تمامی مراحل فوق را تست کردهاید و مشکل همچنان باقی مانده است.



